jjzjj

java - JDBC : returning multiple result sets via a single database invocation - not working for Oracle

coder 2024-03-12 原文

This帖子显示在单个 JDBC 调用(针对 SQL Server 数据库)中执行多个查询,方法是用分号分隔它们。当我尝试对 Oracle 10G 执行相同操作时,出现错误“无效字符”:

class db
{
    public static void main(String aa[])throws Exception
    {
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//192.168.10.29:1521/ttt","username","password");
        PreparedStatement stat = conn.prepareStatement("select voila from app where rownum<4; select code from process where rownum<4");
        stat.execute();
        while (stat.getMoreResults()){
            ResultSet rs = stat.getResultSet();
            while (rs.next()){
                System.out.println(rs.getString(1));        
            }
        }
        conn.close();
    }
}

我做错了什么?

最佳答案

你没有做错任何事情(除了假设所有的 DBMS 工作相同)

Oracle(及其 JDBC 驱动程序)根本不支持这一点。

您需要单独运行每个 SELECT。

顺便说一句:这是某些 SQL 注入(inject)攻击不适用于 Orace 的原因之一 - 特别是著名的“little bobby tables”卡通片。

关于java - JDBC : returning multiple result sets via a single database invocation - not working for Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8504019/

有关java - JDBC : returning multiple result sets via a single database invocation - not working for Oracle的更多相关文章

随机推荐