Java执行SQL代码块,得到dbms_output.put_line的结果

在Java中执行一段SQL的代码段如下:

的时候因为不是存储过程所以没有什么入参和出参

 

我参考的是http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:45027262935845

帖子的内容,这里贴一下用作留存

 

 

而实际时用的时候只需要将 main方法中的

 

stmt.execute ( "begin emp_report; end;" );

里面的SQL替换成你需要执行的SQL即可

 

 

而实际输出的时候是按照一句dbms_output.put_line一行输出来输出的。

 

CREATE OR REPLACE FUNCTION DAY_DIFF ( p_requestid VARCHAR2 ) RETURN NUMBER IS mindate NUMBER := NULL; node_total NUMBER := 0; request_total NUMBER := 0; BEGIN FOR nodeitem IN (SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('667255', '667258'))) LOOP DBMS_OUTPUT.PUT_LINE('当前nodeitem' || nodeitem.COLUMN_VALUE); FOR zou IN ( SELECT to_date(operatedate || ' ' || operatetime, 'YYYY-MM-DD HH24:MI:SS') AS operatedatetime FROM WORKFLOW_REQUESTFLOWINFO WHERE NODEID = nodeitem.COLUMN_VALUE AND REQUESTID = p_requestid ) LOOP DBMS_OUTPUT.PUT_LINE('zou.operatedatetime' || to_char(zou.operatedatetime,'YYYY-MM-DD HH24:MI:SS')); DBMS_OUTPUT.PUT_LINE('进入dao前:' || nodeitem.COLUMN_VALUE || ' ' || p_requestid); FOR dao IN ( SELECT to_date(operatedate || ' ' || operatetime, 'YYYY-MM-DD HH24:MI:SS') AS operatedatetime FROM WORKFLOW_REQUESTFLOWINFO WHERE DESTNODEID = nodeitem.COLUMN_VALUE AND REQUESTID = p_requestid ) LOOP DBMS_OUTPUT.PUT_LINE('dao.operatedatetime' || to_char(dao.operatedatetime,'YYYY-MM-DD HH24:MI:SS')); IF mindate IS NULL OR (zou.operatedatetime - dao.operatedatetime) < mindate THEN DBMS_OUTPUT.PUT_LINE('mindate' || (zou.operatedatetime - dao.operatedatetime)); mindate := zou.operatedatetime - dao.operatedatetime; DBMS_OUTPUT.PUT_LINE('mindate' || mindate); END IF; END LOOP; node_total := mindate + node_total; DBMS_OUTPUT.PUT_LINE('node_total:' || node_total); mindate := NULL; -- 重置 mindate END LOOP; request_total := request_total + node_total; DBMS_OUTPUT.PUT_LINE('request_total' || request_total); END LOOP; RETURN request_total; END;在上面的SQL中,打印出的node_toal以及request_total以及return后面都没有任何值,为什么会这样?
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值