【发布时间】:2013-06-03 21:07:13
【问题描述】:
UPDATE Table1 a
SET a.Col2 = (
SELECT SubStr(Trim(b.Col2),-10,10)
FROM Table2 b
WHERE (InStr(SubStr(Trim(b.Col2),-5,5),'/')=1
AND InStr(SubStr(Trim(b.Col2),1,(Length(Trim(b.Col2))-10)),'/')=0
AND SubStr(b.Col1,1,2)='01'
AND b.Col3 != 000103))
WHERE SubStr(b.Col1,-8,8)=SubStr(a.Col1,1,8)
AND a.Col3 = 1;
命令行错误:9 列:14 错误报告: SQL 错误: ORA-00904: "B"."Col1": 标识符无效 00904. 00000 - "%s: 无效标识符"
第 9 行是WHERE SubStr(b.Col1,-8,8)=SubStr(a.Col1,1,8)
【问题讨论】:
-
您在外部引用内部查询。不要,将此条件移动到内部查询中。
-
您在 SET a.birthdate = (...) 中使用的子查询不能有任何外部引用。
-
无法引用这两个表如何加入?