微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Oracle SQL插入多行并返回一些东西

在Oracle中,可以通过执行查询来插入多行

INSERT ALL
   INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3')
   INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3')
   INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3')
SELECT * FROM dual;

并准备好一个声明,像这样做一个插入

BEGIN INSERT 
   INTO mytable (column1, column2, column3) VALUES (null, 'val1.2', 'val1.3')
RETURNING column1 INTO ?; END;

将导致返回column1的值(假设在插入之前有一个触发器为其赋值).

如果可能的话,有没有办法将两者结合起来?这意味着,在仍然使用单个查询返回所有column1值(结果集)的同时插入多个值?

解决方法:

documentation(至少10g版本),对返回子句的限制之一:

You cannot specify the
returning_clause for a multitable
insert.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐