我想知道通过 JDBC 运行 PL/SQL 或 T-SQL 代码块的最佳方式是什么。
更具体地说 - 应该使用什么 JDBC API 来执行返回 ResultSet
的 PL/SQL 或 T-SQL block ?
更新:
更具体地说——我有一个通用代码,它接收 SQL 代码(可能是 SQL、PL/SQL 或 T-SQL)作为输入,根据所需的数据库加载适当的 JDBC 驱动程序,并执行给定的 SQL 代码如下:
Statement stmt = conn.createStatement ();
ResultSet rs = stmt.executeQuery("BEGIN some code END SELECT * FROM MY_TABLE");
while (rs.next ()) {
System.out.println (rset.getString (1));
}
当使用一些 T-SQL 或 PL/SQL 对象(例如游标)时,这不会返回 ResultSet
。
因此,我想知道这个 JDBC API 是否是执行此类查询的最佳方式。如果是,那么我正在使用的特定 JDBC 驱动程序实现中一定存在错误。
最佳答案
CallableStatement
通常是可行的方法。此链接给出了如何在 Oracle 中执行此操作的示例:
请注意,您得到的是 Cursor
,而不是 ResultSet
。
在 T-SQL(我不太了解)中,带有 executeQuery
的 CallableStatement
应该可以按预期工作,请参阅此链接:
关于java - 通过 JDBC 运行 PL/SQL 和 T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34767120/