合并语句错误

发布于 2024-08-23 16:22:59 字数 725 浏览 6 评论 0原文

我创建了两个表,其描述如下

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一张白纸 2024-08-30 16:22:59

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

In Oracle 10.2.0.1.0 I get this error with your MERGE statement:

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

So try removing "n.empno=o.empno" from your SET clause.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文