我有一个包含游标的包,该游标上的表类型以及返回表的函数。
create or replace package RAPI is
cursor coordAndImgCursor is select latitude, longitude, picture from rapi_buildings;
type coordAndImgTable is table of coordAndImgCursor%rowtype;
function retreiveCoordsAndImgs(
latitude in number,
longitude in number,
area in number)
return coordAndImgTable;
end RAPI;
/
现在我正在尝试将此表放入Java数组中,因此我需要创建一个具有OUT参数的过程。
create or replace procedure jdbc_return(
latitude IN number,
longitude IN number,
area IN number,
return_table OUT RAPI.coordAndImgTable)
as
begin
return_table := RAPI.retreiveCoordsAndImgs(latitude, longitude, area);
end jdbc_return;
/
代码正确且工作正常。
现在我有以下Java代码:
String jdbc_return = "BEGIN
jdbc_return(47.176885, 27.576675, 0.001, ?);
END;";
CallableStatement cstmt = conn.prepareCall(jdbc_return);
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.execute();
但是我收到了这个错误:
PLS-00306: wrong number or types of arguments in call to 'JDBC_RETURN'
ORA-06550: line 1, column 7:
如何从Oracle获取该表?