2010-03-01 87 views
0

我已经创建了两个表下面的说明MERGE语句犯错

SQL>递减NEW_EMP 名称为空?键入


EMPNO NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)

SQL> desc old_emp 名称为空?键入


EMPNO NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)

我米使用合并statment如下面给出用于使用这两个表

合并 成NEW_EMPñ old_emp o on(o.empno = n.empno) when matched if then update set n.empno = o.empno, n.ename = o。 ENAME, n.job = o.job, n.hiredate = o.hiredate, n.sal = o.sal, n.comm = o.comm, n.deptno = o.deptno
时不匹配然后 插入 值(o.empno, O操作。ENAME, o.job, o.hiredate, o.sal, o.comm, o.deptno)

当我执行上述声明 系统显示以下错误,即时通讯使用ORACLE 9i版本

ORA-00904: “N” “EMPNO”:无效的标识符

回答

0

在Oracle 10.2.0.1.0我得到这个错误与你的MERGE语句:

ORA-38104: Columns referenced in the ON Clause cannot be updated: "N"."EMPNO" 

所以尝试删除“n.empno =你的SET子句中的“o.empno”。

+0

感谢它现在正在工作 – bhagwat