0

我创建了两个具有以下描述的表

SQL> desc new_emp 名称为空?类型


EMPNO NUMBER(4) ENAME VARCHAR2(10) Job VARCHAR2(9) 聘用日期 SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)

SQL> desc old_emp 名称为空?类型


EMPNO NUMBER(4) ENAME VARCHAR2(10) Job VARCHAR2(9) 聘用日期 SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)

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

匹配时使用 old_emp o on (o.empno=n.empno) 合并到 new_emp n,然后更新集合 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": 标识符无效

4

1 回答 1

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”。

于 2010-03-01T10:20:03.887 回答