
正文
oracle存储过程更新多个表的操作,oracle存储过程更新多个表的操作记录
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在oracle数据库,想用多表连接更新数据,结果报错了
1、你大概是想用zJTQY表的值来更新t_cs_inhabitantrecord_new中的数据吧。
2、当你两段建表语句之间,没有写;sql认为语句还没结束,又会接着执行,如果两张表都有id字段,就会导致sql认为你在一张表里建两个同名字段,进而报错。所以,遇到这种问题,记得在一段sql语句执行完后,加上分号。
3、此时数据库就会报错:单行子查询返回多行。基于上述原理,解决这个问题的关键在于你要理清楚数据间的业务逻辑关系,保证查询结果是按照主键查询的,即保证查询结果是惟一的一行数据。
4、我敢肯定,楼上的人都不是做Oracle的。select c.dpt,a.num1,b.num2,c.num3 from a,b,c where a.dpt(+)= b.dpt and b.dpt(+)= c.dpt 就是这样。
相关问答
Q1: oracle多表取出某值相加后更新到目标表的存储过程怎么写?
1、取值。select hweight2,hweight3 from tab 这个累加可以写在存储过程中,在java中调用,也可以在java里面执行update语句。
2、你可以写一个存储过程来执行,由于数据量大,如果直接更新,数据库UNDO表空间肯定会满,会产生异常。过程如下,给你参考下。
3、给你思路, 首先查出表中总数 ,保存总数, 然后定义一个当前条数,从0开始,每次调用给它加5000。
Q2: oracle怎么同时更新两个表
按顺序更新,然后再commit 就可以了。
写个触发器,在a表中insert数据的时候同时在b表中insert。写个存储过程,写两个insert语句,将数据同时insert到a表和b表中,在程序中调用存储过程。
肯定是不可以的。首先,ORACLE没有UPDATE ... FROM这样的语法,这是SQLSERVER才支持的。另外,更新哪个表,是由UPDATE后边的表名决定的,所以通过语句一次只能更新一个表。
关于oracle存储过程更新多个表的操作和oracle存储过程更新多个表的操作记录的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






