ora_rowscn在USING子句中时的Oracle合并语句行为
-
27-10-2019 - |
题
我有一条MERGE语句,该语句给了我可怕的ORA-00904: invalid identifier
错误消息。请注意,此处不存在“无效标识符”错误的典型问题-我既不尝试更新联接的列,也没有拼写错误的列名。我 am 尝试在ORA_ROWSCN
子句的USING
语句中使用oracle伪列SELECT
。
使用这些示例表,我尝试运行 通用标签
如果我从USING子句中删除了伪列ora_rowscn,我将不再收到错误消息,并且合并成功完成。 通用标签
如果我改为将查询放入VIEW,则可以成功使用ora_rowscn: 通用标签
是否可以在不为查询创建VIEW的情况下执行此操作?作为ETL流程的一部分,我必须在许多表上执行此操作,并且不希望不必构建多个视图。
编辑: 根据注释中Glenn的建议,我尝试将查询放入子查询中: 通用标签
此查询仍然给我ORA-00904: invalid identifier
错误消息。
这里是DDL来重新创建问题。 通用标签
解决方案
我运行了您的SQL并收到了相同的错误(11.2.0.1上)。然后我尝试运行select 通用标签
仍然出现了ORA-00904: "UPDATE_DT": invalid identifier
错误。然后我注意到在您的DDL中,MY_SOURCE_TABLE
上的列称为UPDATED_DT
(即带有额外的D
字符)。更改您的MERGE
语句中的引用使其对我有用,希望能对您有所帮助。
不隶属于 StackOverflow