java - 如何使用 Java 存储过程显示表数据?

标签 java sql oracle java-stored-procedures

目前,我正在 oracle db 上用 JAVA 测试一些存储过程,因此我尝试显示所有 emp 实体。

所以我的问题是如何通过java存储过程显示整个表?

这是我尝试过的:

create or replace and compile java source named getEMP
as
import java.sql.*;
import java.util.*;
public class Example{
    public static void showEmp() throws SQLException, ClassNotFoundException {
            ResultSet rs;
            Properties p = new Properties();
            p.put("user", "user");
            p.put("password","password");
            String strCon = "Connection String";

            Class.forName("oracle.jdbc.OracleDriver"); 
            Connection con = DriverManager.getConnection(strCon, p);

            Statement stmt;

            con = DriverManager.getConnection(strCon, p);
            String query =
                    "select empno, ename, deptno, sal, comm " +
                    "from emp";

            stmt = con.createStatement();
            rs = stmt.executeQuery(query);

        //Display the ResultSet
    }
}

我在这个方法中的问题是我无法使用System.out.println("");。此后它什么也不显示:

create or replace procedure showEmp
as language java name 'Example.showEmp()';

exec showEmp;

提前致谢!

最佳答案

您需要确保启用服务器输出并将 java 输出重定向到它。在 SQL*PLus 中,您可以使用以下两条语句来完成此操作:

SQL> set serveroutput on;
SQL> call dbms_java.set_output(20000);

数字 20000 是最大缓冲区大小,与 DBMS_OUTPUT 中的相同。

在此之后,如果您运行 exec showEmp;,您应该能够看到打印出 System.out.println() 调用的结果。

关于java - 如何使用 Java 存储过程显示表数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148008/

相关文章:

java - 自动转义引号

mysql - 字段列表中的排序顺序错误

mysql - 从 SQL 中的表中选择不同的日期间隔

oracle - 如何删除 Oracle Apex 中的页脚

mysql - 将级联与复合主键结合使用

java - 关于为基于 Servlet 的 Java Web 应用程序设置负载平衡和故障转移的书籍/资源

java - 如何使用 Java 解析 midi 的速度?

PHP 错误 : Warning: ociparse() parameter 1 to be resource

java - 无法在 JBoss 7.1.1 下部署动态 Web 项目(链接到 EJB 项目)

php - 如果 MSSQL 表列为 NULL,如果语句不起作用,则使用 PHP 使用 JS 更改 CSS 样式