我与Oracle数据库建立了JDBC连接。我创建一个Statement。 SQL查询String包含由分号分隔的多个语句,由不同的系统提供。
示例:
connection.prepareStatement("SELECT * FROM A; SELECT * FROM B");
根据ddimitrov,这是不可能的。
但我尝试过的所有其他数据库都支持它。 JDBC甚至支持检索多个结果。
是否有人指向Oracle文档明确指出它不受支持或有办法使其工作(不使用存储过程)?
答案 0 :(得分:4)
答案 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中所述)。