java - 在单个 SQL 语句中插入/更新/删除多个表

标签 java oracle jdbc jmeter sql-injection

当我使用 JMeter JDBC request 时在 Oracle DB 上,语句中不允许 ;

SQL query. Do not enter a trailing semi-colon.

例如

insert into a select '1' from dual;
insert into b select '1' from dual

会产生异常(当拆分为2个单独的请求时它会起作用):

 java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended

如果我想执行测试数据的清除/插入,我无法使用 1 个 JDBC 请求插入多个,并且我必须为每个表创建至少 1 个请求(每个表可以有多个值) )。

除了使用可调用语句之外,还有其他方法可以插入/更新/删除吗?

此限制是否仅与 SQL 注入(inject)有关?

最佳答案

插入可以使用INSERT ALL,例如

insert all
  into a (col) values ('1')
  into b (col) values ('2')
select * From dual

更新和删除不行;恐怕您必须为每个表使用一个语句,除非您想使用 PL/SQL 并调用一个过程来完成所有这些工作。

关于java - 在单个 SQL 语句中插入/更新/删除多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205396/

相关文章:

Java - 仅在关闭时处理 JFrame?

java - 如何删除parse.com类中数组类型对象中的值

sql - Oracle SQL : How to Sum groups with total of all groups

sql - ORA-01446 - 无法从带有 DISTINCT、GROUP BY 等的 View 中选择 ROWID

mysql - 在 azure 中使用 java 函数应用程序获取 SSL 和连接错误

java - 享元设计模式

JavaFX 图表系列 ConcurrentModificationException

oracle - 在 tcsh 中创建 oracle 数据库链接时 () 放置不当

java - SQLServer express R2 的 JDBC 连接 Url

java - 如何在 PL/SQL 中返回 ROWTYPE 并在 Java 中检索它?