hujianxin
V2EX  ›  Oracle

Oracle 存储过程问题请教

  •  
  •   hujianxin · Sep 25, 2016 · 2732 views
    This topic created in 3542 days ago, the information mentioned may be changed or developed.

    现在有一个存储过程:tnrpGraphBlobConverter

    CREATE OR REPLACE Procedure                     tnrpGraphBlobConverter(graphBlob in Blob, RefCursor In Out dctypes.cursorType) 
    As 
    value_Array1 TNNUMBERMARRAY; 
    value_Array TNNUMBERMARRAY; 
    Begin 
    value_Array1 := TNNUMBERMARRAY(); 
    value_Array := TNNUMBERMARRAY(); 
     
    tnrpGraphBlobConverterJava(graphBlob, value_Array1, value_Array); 
     
    Open RefCursor For 
    SELECT ROW_NUMBER() over (order by 1) as MyRow, tmp.COLUMN_VALUE as MyValue from TABLE(value_Array) tmp; 
     
    End;
    

    其中,tnrpGraphBlobConverterJava这个存储过程是:

    CREATE OR REPLACE Procedure                     tnrpGraphBlobConverterJava(graphBlob in Blob,graphDataDesc in TNNumbermArray, graphData in out TNNumbermArray) 
    As Language Java Name 'ToolsNetUtility.tnrpGraphBlobConverterJava(oracle.sql.BLOB, oracle.sql.ARRAY, oracle.sql.ARRAY[])';
    

    请问,第一个存储过程中, RefCursor 是什么意思啊,应该传给他一个什么样的参数呢?

    另外,如何用 java 来执行这个存储过程呢?其中这个 In Out 类型应该如何传参呢?

    3 replies    2016-09-29 10:44:06 +08:00
    shiyiwan
        1
    shiyiwan  
       Sep 28, 2016
    Ref Cursor 是 Oracle 的动态游标类型, Java 读取时应该可以 oracle.jdbc.driver.OracleTypes.CURSOR 类型。
    用法参考一下链接 http://www.databasedesign-resource.com/oracle-ref-cursor-in-java.html
    hujianxin
        2
    hujianxin  
    OP
       Sep 29, 2016
    @shiyiwan 感谢回复!
    hujianxin
        3
    hujianxin  
    OP
       Sep 29, 2016
    @Livid
    你好,这个主题能帮忙删除吗?这一个包含似有代码,对方要求我们删除,谢谢啦。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   842 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    ♥ Do have faith in what you're doing.