RT 我用的是ORACLE 9I update a set a.partid = b.id from sendpartinfo a Inner join part_storage b on a.partno=b.partnum and a.partcode=b.partcode and a.partver=b.partver
执行上面语句的时候 报ORA-00933: SQL 命令未正确结束!
有哪位达人 能分析一下我这句 sql
等待ing
执行上面语句的时候 报ORA-00933: SQL 命令未正确结束!
有哪位达人 能分析一下我这句 sql
等待ing
解决方案 »
- 触发器相关 紧急求救~~~~大侠们帮帮忙~~
- 怎么用SQL语句往oracle clob类型里存入大于4000的字符串?
- 关于Oracle随机查询数据的问题,在线求解,求帮助
- 用imp导入数据时,是否提示“已成功导入”就行了?有警告呢?
- 百分向suiziguo大哥题个小问题
- ORACLE里的函数
- 请问如何把一个字段中的字符串拆开为多条记录?
- 有没有人知道啊?
- ****一个很急的问题,刚装了ORACLE 9.1的,我用SQL执行时,他说什么协议错误,请高正指正,!!!!!!!!!!!!!!!!!!!!!
- 导入时出现如下错误,请帮忙。(数据量在2G以上)
- 关于ORACLE效率的2个小问题
- 看看这句sql怎么写,内详。
语法
update 表名
set 字段=
where 条件只能单表更新的,一看有from,就知道语法不对
SET a.partid =
(SELECT b.ID
FROM part_storage b
WHERE a.partno = b.partnum
AND a.partcode = b.partcode
AND a.partver = b.partver)
WHERE EXISTS (
SELECT 1
FROM part_storage b
WHERE a.partno = b.partnum
AND a.partcode = b.partcode
AND a.partver = b.partver)
a.partver = b.partver 是允许为空的 我应该还怎么去改善呢?
nvl(a.partver,'') = nvl(b.partver,'')
UPDATE
SET
FROM
的语法,oracle其实也提供了可以实现这种功能的update语法
楼主可以试试:
UPDATE (SELECT /*+BYPASS_UJVC*/
A.PARTID,
B.ID
FROM SENDPARTINFO A
INNER JOIN PART_STORAGE B ON A.PARTNO = B.PARTNUM
AND A.PARTCODE = B.PARTCODE
AND A.PARTVER = B.PARTVER)
SET PARTID = ID