我创建了两个包含以下描述的表
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”:标识符无效
答案 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”。