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

Java 在单个SQL语句中插入/更新/删除多个表,java,oracle,jdbc,jmeter,sql-injection,Java,Oracle,Jdbc,Jmeter,Sql Injection,当我在Oracle DB上使用JMeter时,它不允许;在声明中 SQL查询。 不要输入尾随分号 比如说 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个JDB

当我在Oracle DB上使用JMeter时,它不允许;在声明中

SQL查询。 不要输入尾随分号

比如说

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注入有关吗?

为什么不试试:插入到表a中,表b值a.field=从Dual中选择“1”,b.field=从Dual中选择“1”,我不完全确定,但我认为它可以工作

我发现使用多个表可以工作:

INSERT ALL
 Into a (a) values ('1')
 into b (b) values('1')
 SELECT * FROM dual
还可以使用INSERT ALL语句在一个命令中将多行插入到多个表中

Insert将起作用,使用Insert ALL,例如


更新和删除不会发生;恐怕每个表只能使用一条语句,除非您想使用PL/SQL并调用一个过程来完成所有这些工作。

;不是sql的一部分,它是发送sql的程序的终止符。在sqldev/sqlcl/sqlplus中;被视为知道语句的结尾,将该点之前的所有内容作为语句发送到数据库。然后处理下一组文本,直到下一组;或/

此示例向数据库显示为一个大字符串,例如:

插入到一个选择“1”从双;插入到b中,从双通道选择“1”

要在对数据库的一次调用中执行两条语句,需要一个begin/end循环,将其转换为可执行块,如

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

然后在JMeter中更改为Callable语句

不同的错误:ORA-00926:缺少值关键字,也尝试插入到tableA中,tableB b值a.field=从Dual中选择“1”,b.field=从Dual中选择“1”所以用值替换值,我们不是来完成所有工作的!我只是回答类似,你还需要删除;为了让它运转良好;是一个终结者,对甲骨文来说是正常的。如果它不应该/不能在Java程序中使用,请删除它。我想,插入所有内容才是最重要的:我已经删除了它。
BEGIN
insert into a select '1' from dual;
insert into b select '1' from dual;
END;