使用MERGE INTO错误,请帮忙。

wucuil 2011-06-26 12:25:15
ORA-38101: Invalid column in the INSERT VALUES Clause
...全文
620 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttxing 2011-06-27
  • 打赏
  • 举报
回复
UPDATE
SET a.BY_SEQ = b.BY_SEQ,
用于连接的字段不能做更新,可以参考:
http://www.idb-stock.net/idb/2011/05/30/147.html
http://www.idb-stock.net/idb/2011/05/30/146.html
wucuil 2011-06-27
  • 打赏
  • 举报
回复
语句如下,请帮忙看下,多谢各位啦。
MERGE INTO BILL.T_BY_DISCT a
USING (
SELECT BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS from wcl.T_by) b
ON (a.BY_SEQ = b.BY_SEQ)
WHEN MATCHED THEN
UPDATE SET a.BY_SEQ=b.BY_SEQ,a.USER_NAME=b.USER_NAME,a.ACCOUNT_ID=b.ACCOUNT_ID,a.SI_EXTERNAL_ID=b.SI_EXTERNAL_ID,a.BY_MIN=b.BY_MIN,a.BY_MAX=b.BY_MAX,a.BY_PRECENT=b.BY_PRECENT,a.BY_TYPE=b.BY_TYPE,a.BY_LEVEL=b.BY_LEVEL,
a.STATUS=b.STATUS,a.CREATE_DATE=b.CREATE_DATE,a.END_DATE=b.END_DATE,a.BY_OBJECT_ID=b.BY_OBJECT_ID,a.CREATE_STAFF=b.CREATE_STAFF,a.FEE_NBR=b.FEE_NBR,a.STATUS_CHG_DATE=b.STATUS_CHG_DATE,a.COMMENTS=b.COMMENTS
WHEN NOT MATCHED THEN
INSERT (BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS)
VALUES (BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS);
秋雨飘落 2011-06-26
  • 打赏
  • 举报
回复
你语句写错了吧,把你的SQL贴出来。

或者看我空间,加我Q
Rotel-刘志东 2011-06-26
  • 打赏
  • 举报
回复
列中没有插入值的原因。
304的的哥 2011-06-26
  • 打赏
  • 举报
回复
注意:两表的连接条件(比如上面的id列)是不能update的
304的的哥 2011-06-26
  • 打赏
  • 举报
回复

--参考:
merge into table_a a
using table_b b
on(a.id=b.id)
when matched then
update
set a.col_1=b.col_1
a.col_2=b.col_2
when not matched then
insert (a.col_1,a.col_2)
values (b.col_1,b.col_2);

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧