如何在JAVA中获取Oracle pivot存储过程的结果集?

如何在JAVA中获取Oracle pivot存储过程的结果集?,java,stored-procedures,pivot,Java,Stored Procedures,Pivot,有人能帮我检索JAVA中Oracle pivot存储过程的结果集吗。下面给出了我的存储过程 create or replace PROCEDURE TESTP ( p_cursor out sys_refcursor ) AS in_clause varchar2(256); sel_query varchar2(256); n number := 0; BEGIN for x in (select distinct VENDOR_ID f

有人能帮我检索JAVA中Oracle pivot存储过程的结果集吗。下面给出了我的存储过程

    create or replace PROCEDURE TESTP 
(
  p_cursor out sys_refcursor

) AS 


    in_clause varchar2(256);
    sel_query varchar2(256);
    n number := 0;

BEGIN


 for  x in (select distinct VENDOR_ID from MF_QUOTATIONS)
    loop    
        if n <> 0 then 
                in_clause := in_clause || ', ';
        end if;
        in_clause := in_clause ||  '''' || x.VENDOR_ID || '''';
        n := 1;    
    end loop;

open p_cursor for select * from (select ITEM_ID, VENDOR_ID, TOTAL from MF_QUOTATIONS) pivot (max(TOTAL) for VENDOR_ID in ('||in_clause||'));




END TESTP;

我想在JAVA应用程序中获得上述SP的结果集。帮帮我,伙计们。

我很困惑。由于许多原因,您的程序似乎无效。如果该过程无效,为什么不询问如何修复该过程,而不是如何从Java调用它?@JustinCave当我将查询分配给这样一个变量时-sel_query:='select*from select ITEM_ID,VENDOR_ID,TOTAL from MF_quotes pivot maxTOTAL for VENDOR_ID in'.| in| in子句|';只需使用dbms_output.put_line sel_query打印查询;我得到了我所需要的查询。这就是为什么我认为SP是正确的。您发布的代码无效。并且,我假设,它不是您在_子句中使用的实际代码,例如,它可能不是NULL。从SQLDeveloper调用该过程时出现错误,这一事实强烈暗示您的实际代码也是无效的。但是,我不知道无效数字错误是从哪里来的,因为您的过程似乎没有第17行。@如果SP不正确,您能纠正它吗?可能。你需要告诉我们它应该做什么。还有像in_子句这样的东西是从哪里来的。我假设您的目标不是基于空列集进行透视。
Connecting to the database DBPURCH.
ORA-01722: invalid number
ORA-06512: at "DBPURCH.TESTP", line 17
ORA-06512: at line 5
Process exited.
Disconnecting from the database DBPURCH.