合并声明错误

时间:2010-03-01 09:02:41

标签: oracle9i

我创建了两个包含以下描述的表

SQL> desc new_emp  名字空?型


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

SQL> desc old_emp  名字空?型


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

我使用下面给出的这两个表的合并语句

合并    进入new_emp n 运用    old_emp o on(o.empno = n.empno) 当匹配时 更新 设置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”:标识符无效

1 个答案:

答案 0 :(得分:0)

在Oracle 10.2.0.1.0中,我使用MERGE语句收到此错误:

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

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