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
解决方案 »
- Oracle Archive log 导致 磁盘没空间了 怎么办?
- 高分求关于递归查询的oracle语句!
- 显示EMP表里工资最高的两个人的信息???
- linux 下编辑oracle数据库.pc文件时出错 在线等
- oracle查询大数据量
- 程序中,insert语句中某字段值从excel读来,其内容有换行,因此insert执行出错,怎么办呢?
- 请问高人,如何将Access数据库导入 Oracle中?
- $ORACLE_HOME/bin/sqlldr是什么意思?
- pro*c能调用oracle中的存储过程吗?
- 怎样获得oracle中的进程信息?
- 关于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