合并语句错误
我创建了两个表,其描述如下
SQL>描述新员工 名字为空?类型
EMPNO 编号(4) 命名 VARCHAR2(10) 作业 VARCHAR2(9) 聘用日期 SAL 编号(7,2) 通讯号码(7,2) DEPTNO NUMBER(2)
SQL>描述old_emp 名字为空?类型
EMPNO 编号(4) 命名 VARCHAR2(10) 作业 VARCHAR2(9) 聘用日期 SAL 编号(7,2) 通讯号码(7,2) DEPTNO NUMBER(2)
我正在对这两个表使用下面给出的 Merge 语句
Merge 进入 new_emp n 使用 旧员工 上 (o.empno=n.empno) 当匹配时 更新 设置n.empno=o.empno, n.ename=o。名称, n.工作=o.工作, n.hiredate=o.hiredate, n.sal=o.sal, n.comm=o.comm, n.deptno=o.deptno
当不匹配时 插入 值(o.empno, o。名称, 工作, o.聘用日期, 萨尔, o.comm, o.deptno )
当我执行上述语句时 系统显示以下错误,我使用 ORACLE 9i 版本
ORA-00904:“N”。“EMPNO”:无效标识符
I have created two tables with following descriptions
SQL> desc new_emp
Name Null? Type
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
Name Null? Type
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
I m using an Merge statment as given below for these two tables
Merge
into new_emp n
using
old_emp o
on (o.empno=n.empno)
when matched 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
when not matched then
insert
values( o.empno,
o. ename,
o.job,
o.hiredate,
o.sal,
o.comm,
o.deptno )
when I executed the above statement
system shows following error, i m using ORACLE 9i version
ORA-00904: "N"."EMPNO": invalid identifier
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Oracle 10.2.0.1.0 中,我在 MERGE 语句中遇到此错误:
因此请尝试从 SET 子句中删除“n.empno=o.empno”。
In Oracle 10.2.0.1.0 I get this error with your MERGE statement:
So try removing "n.empno=o.empno" from your SET clause.