Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jdbc执行PLSQL后读取DBMS输出_Java_Oracle_Jdbc_Plsql_Ojdbc - Fatal编程技术网

Java 从jdbc执行PLSQL后读取DBMS输出

Java 从jdbc执行PLSQL后读取DBMS输出,java,oracle,jdbc,plsql,ojdbc,Java,Oracle,Jdbc,Plsql,Ojdbc,我需要使用jdbc执行Oralce PL/SQL语句,但我在如何提取数据方面遇到了困难 这是我的声明 DECLARE l_xmltype XMLTYPE; l_ctx dbms_xmlgen.ctxhandle; BEGIN l_ctx := dbms_xmlgen.newcontext('select * from myTable where rownun < 10;); dbms_xmlgen.setrowsettag(l_ctx, 'My_DATA'

我需要使用jdbc执行Oralce PL/SQL语句,但我在如何提取数据方面遇到了困难

这是我的声明

DECLARE 
   l_xmltype XMLTYPE; 
   l_ctx dbms_xmlgen.ctxhandle; 
BEGIN 
   l_ctx := dbms_xmlgen.newcontext('select * from myTable where rownun < 10;); 
   dbms_xmlgen.setrowsettag(l_ctx, 'My_DATA'); 
   dbms_xmlgen.setrowtag(l_ctx, 'My_Element'); 
   l_xmltype := dbms_xmlgen.getXmlType(l_ctx) ; 
   dbms_xmlgen.closeContext(l_ctx);  
  dbms_output.put_line(l_xmltype.getClobVal); 
  dbms_output.get_lines(?, l_xmltype);
End;
我得到了错误

java.sql.SQLException:ORA-06550:第1行第380列:PLS-00306:错误 “GET_LINES”调用中参数的数量或类型

我不是PL/SQL或jdbc方面的专家,所以我正在努力寻找解决方案。

的第二个参数是数字,而不是
XMLTYPE
。将您的呼叫更改为:

dbms_output.get_lines(?, 50);
我还展示了一个更完整的例子来说明如何做到这一点。请注意,要启用
dbms\u输出
collection,还必须首先添加以下调用:

dbms_output.enable();

错误代码显示,问题出在哪里。dbms_output.get_line有两个参数“line”作为varchar2的表,而“numlines”作为in/out number参数。您发送了错误的参数。我建议将这个匿名块包装到存储过程中并调用它。易于维护和阅读。可能重复感谢。现在它在技术上是可行的,但由于某种原因,我的输出是空的,所以现在我必须找出原因!
dbms_output.enable();