Oracle 存储过程问题请教

2016-09-25 16:06:05 +08:00
 hujianxin

现在有一个存储过程: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 类型应该如何传参呢?

2023 次点击
所在节点    Oracle
3 条回复
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
2016-09-29 10:42:30 +08:00
@shiyiwan 感谢回复!
hujianxin
2016-09-29 10:44:06 +08:00
@Livid
你好,这个主题能帮忙删除吗?这一个包含似有代码,对方要求我们删除,谢谢啦。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/308841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX