你能在Oracle jdbc中的一个查询字符串中放入多个语句吗?

时间:2011-11-30 13:49:13

标签: java oracle jdbc

我与Oracle数据库建立了JDBC连接。我创建一个Statement。 SQL查询String包含由分号分隔的多个语句,由不同的系统提供。

示例:

connection.prepareStatement("SELECT * FROM A; SELECT * FROM B");

根据ddimitrov,这是不可能的。

但我尝试过的所有其他数据库都支持它。 JDBC甚至支持检索多个结果。

是否有人指向Oracle文档明确指出它不受支持或有办法使其工作(不使用存储过程)?

3 个答案:

答案 0 :(得分:4)

执行多个语句:

  

JDBC 2.0允许您使用addBatch方法

一次提交多个语句

请参阅here

答案 1 :(得分:3)

不,Oracle JDBC驱动程序无法做到这一点。

您必须将字符串解析并拆分为各自的语句。

顺便说一句:我认为只允许 的数据库是Microsoft SQL Server和MySQL。这也使他们容易受到某些不能使用Oracle或PostgreSQL的SQL注入攻击。

答案 2 :(得分:1)

AFAIK大多数数据库只允许您在每次执行或准备调用时执行/准备一个语句。虽然没有非常明确地表达,但JDBC方法的目的是执行a single SQL statement

sql - **an** SQL statement that may [...]

检索多个结果集是针对(非常罕见的)单个(!)语句或返回多个结果集的存储过程(如Statement#execute的javadoc中所述)。

相关问题