我有一个存储过程,我正在使用
dbms_output.put_line(' output' || outVar);
我想直接在Java控制台中打印相同的输出(直接来自存储过程),而不使用下面的代码来获取outVar
:
callableStatement.registerOutParameter(1, String);
system.out.println(callableStatement.getString());
答案 0 :(得分:2)
将您的程序更改为以下函数:
FUNCTION SOME_FUNCTION
RETURN VARCHAR2
IS
BEGIN
-- Do some processing here....
RETURN 'output:' || ....;
END;
回到java land:
CallableStatement cs = connection.prepareCall("{? = call SOME_FUNCTION}");
cs.registerOutParameter(1, String);
cs.executeUpdate();
system.out.println(cs.getString(1));
没有其他办法。你有ORACLE,你有IDE控制台。两者之间没有关系。要从数据库中获取数据,你必须使用一个函数来返回一个值,你可能会认为返回值作为out参数是一回事,虽然两者都会得到一个值,但你的代码将更加直观。其他。它说,这个调用会返回一些东西。
也就是说,您可以在SQL开发人员中调用该方法并打印如下:
DECLARE
result varchar2;
BEGIN
result := SOME_FUNCTION;
DBMS_OUTPUT.PUTLINE(result);
END;