V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hujianxin
V2EX  ›  Oracle

Oracle 存储过程问题请教

  •  
  •   hujianxin · 2016-09-25 16:06:05 +08:00 · 1995 次点击
    这是一个创建于 2982 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有一个存储过程: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 条回复    2016-09-29 10:44:06 +08:00
    shiyiwan
        1
    shiyiwan  
       2016-09-28 21:59:23 +08:00
    Ref Cursor 是 Oracle 的动态游标类型, Java 读取时应该可以 oracle.jdbc.driver.OracleTypes.CURSOR 类型。
    用法参考一下链接 http://www.databasedesign-resource.com/oracle-ref-cursor-in-java.html
    hujianxin
        2
    hujianxin  
    OP
       2016-09-29 10:42:30 +08:00
    @shiyiwan 感谢回复!
    hujianxin
        3
    hujianxin  
    OP
       2016-09-29 10:44:06 +08:00
    @Livid
    你好,这个主题能帮忙删除吗?这一个包含似有代码,对方要求我们删除,谢谢啦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:35 · PVG 11:35 · LAX 19:35 · JFK 22:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.