Oracle 将一个表中几个字段更新到另一个表中

例如:test_table1中字段1aa,字段2bb,字段cc。更新到test_table2中,test_table2中字段DD,EE,GG,FF...,我是这么写的”U... 例如:test_table1中字段1aa,字段2bb,字段cc。
更新到test_table2中,test_table2中字段DD,EE,GG,FF...,
我是这么写的”
UPDATE TEST_TABLE1 T1
SET (T1.AA, T1.BB, T1.CC) =
(SELECT DD, EE, FF
FROM TEST_TABLE2 T2
WHERE 1=1)
展开
 我来答
renfengjun1986
2013-12-26 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部

如果下面的子查询返回多条数据,是会报错的。

SELECT DD, EE, FF
         FROM TEST_TABLE2 T2
        WHERE 1=1


第 1 行出现错误:

ORA-01427: 单行子查询返回多个行


如果test_table2 表中只有一条数据,那么是没有问题的。



我觉得你这两个表一定是要有关联关系的,不然这个update语句没什么意义。

比如test_table1 表中有一个id字段,一对一关联着test_table2 表中的id字段,那么可以这样写:


UPDATE TEST_TABLE1 T1
  SET (T1.AA, T1.BB, T1.CC) =
      (SELECT DD, EE, FF
         FROM TEST_TABLE2 T2
        WHERE t1.id=t2.id)
追问
对的,肯定是有关联,而且还在就报你说的错误了,最后我用了exists才弄好了,,,
nietiezheng
2013-12-26 · TA获得超过5536个赞
知道大有可为答主
回答量:3132
采纳率:87%
帮助的人:1219万
展开全部
你如果要是插入记录的话可以这么写
insert INTO TEST_TABLE1(AA,BB,CC)as
(SELECT DD, EE, FF FROM TEST_TABLE2 T2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韩福洁
推荐于2017-09-15 · TA获得超过623个赞
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:62.7万
展开全部
如果test_table1和test_table2是关联的才能叫更新,采用renfengjun1986的方法即可,
如果两个表是没有关联的那就应该叫插入数据,采用nietiezheng 的方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式