有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

sql将存储过程消息直接打印到Java控制台

我正在使用一个存储过程

dbms_output.put_line(' output' || outVar);

我想直接在Java控制台中打印相同的输出(直接从存储过程打印),而不需要使用下面的代码来获取outVar

callableStatement.registerOutParameter(1, String);
system.out.println(callableStatement.getString());

共 (1) 个答案

  1. # 1 楼答案

    将过程更改为函数,如下所示:

    FUNCTION SOME_FUNCTION
    RETURN VARCHAR2
    IS
    BEGIN
       Do some processing here....
     RETURN 'output:' || ....;
    END;
    

    回到爪哇岛:

    CallableStatement cs = connection.prepareCall("{? = call SOME_FUNCTION}");
    cs.registerOutParameter(1, String);
    cs.executeUpdate();
    system.out.println(cs.getString(1));
    

    没有别的办法。你有ORACLE,你有IDE控制台。两者之间没有关系。要从数据库中获取数据,您必须使用函数返回值,您可以认为返回值作为输出参数是一回事,虽然两者都将返回值,但您的代码对其他人来说将更加直观。它说,这个调用返回了一些东西

    也就是说,您可以在SQL developer中调用该方法并按如下方式打印:

    DECLARE
        result varchar2;
    BEGIN
        result := SOME_FUNCTION;
        DBMS_OUTPUT.PUTLINE(result);
    END;