ORACLE SQL合并声明中的错误

马库斯

我正在尝试在Oracle 11g中执行以下代码,并遇到错误。

MERGE INTO EMP_COPY4 C
USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES) E
ON (C.EMPLOYEE_ID = E.EMPLOYEE_ID)
WHEN MATCHED THEN
UPDATE SET
C.FIRST_NAME = E.FIRST_NAME,
C.LAST_NAME = E.LAST_NAME,
C.EMAIL = E.EMAIL,
C.COMMISSION_PCT = E.COMMISSION_PCT
DELETE WHERE (E.COMMISSION_PCT IS NOT NULL)
WHEN NOT MATCHED THEN
INSERT VALUES (E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT);       

EMP_COPY4是EMPLOYEES的副本表,仅具有以下列EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,COMMISSION_PCT

我想在某些情况下合并它们,但Oracle给出了以下错误

Error starting at line : 405 in command -
MERGE INTO EMP_COPY4 C
USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES) E
ON (C.EMPLOYEE_ID = E.EMPLOYEE_ID)
WHEN MATCHED THEN
UPDATE SET
C.FIRST_NAME = E.FIRST_NAME,
C.LAST_NAME = E.LAST_NAME,
C.EMAIL = E.EMAIL,
C.COMMISSION_PCT = E.COMMISSION_PCT
DELETE WHERE (E.COMMISSION_PCT IS NOT NULL)
WHEN NOT MATCHED THEN
INSERT VALUES (E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT)
Error at Command Line : 406 Column : 66
Error report -
SQL Error: ORA-00904: "E"."COMMISSION_PCT": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

第405行是语句的开始,第406行是第二行。

您能帮我弄清楚为什么会出现这种错误吗...?

安东·扎维留欣(Anton Zaviriukhin)

用任一替换二维线

USING (SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, COMMISSION_PCT FROM EMPLOYEES) E

或者

USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES E) E

如果表没有别名,则不能在SELECT列表中使用别名

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在oracle中声明并选择错误

来自分类Dev

在Oracle SQL临时脚本中声明函数

来自分类Dev

在Oracle PL / SQL中声明动态数组

来自分类Dev

Oracle PL / SQL代码中的神秘声明

来自分类Dev

在Oracle SQL函数中声明多个变量

来自分类Dev

在Oracle Sql中合并多个查询的结果

来自分类Dev

在Oracle Sql中合并多个查询的结果

来自分类Dev

SQL Oracle合并记录

来自分类Dev

oracle Sql Developer 错误绑定变量未声明

来自分类Dev

Oracle PL/SQL 过程标识符必须声明错误

来自分类Dev

jOOq在Oracle中的合并

来自分类Dev

合并Oracle中的集合?

来自分类Dev

Oracle IF声明

来自分类Dev

Oracle PL / SQL条件声明?

来自分类Dev

声明Oracle SQL中的变量以在查询中使用

来自分类Dev

SQL Oracle:合并连续的行

来自分类Dev

在FOR循环ORACLE中声明游标

来自分类Dev

Netbeans中的Oracle SQL语法错误

来自分类Dev

Oracle Application Express中的PL / SQL错误

来自分类Dev

Oracle 11g SQL中的错误

来自分类Dev

触发器中的SQL ORACLE错误

来自分类Dev

我可以在Oracle SQL中合并多列的部分吗

来自分类Dev

合并语句与Oracle SQL中的ON子句不匹配

来自分类Dev

在Oracle SQL中合并三个表

来自分类Dev

Oracle中的合并语句帮助

来自分类Dev

合并XML中的节点(Oracle)

来自分类Dev

合并XML中的节点(Oracle)

来自分类Dev

Oracle SQL-动态案例声明

来自分类Dev

Oracle中的SQL优化