以下は私の pl\sql と Java の使用法です:
PL\SQL:
procedure getDetails(id in number,
varArray out var_array,
valArray out var_array,
anotherArray out var_array,
description out varchar2 )
type var_array IS table of VARCHAR2(255) index by BINARY_INTEGER;
ジャワ:
CallableStatement cstmt = (OracleCallableStatement) conn.prepareCall("{call pkg.getDetails(?,?,?,?,?)}");
cstmt.setInt(1, Integer.parseInt(resultList.get(0).trim()));
cstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.ARRAY);
cstmt.registerOutParameter(3, oracle.jdbc.OracleTypes.ARRAY);
cstmt.registerOutParameter(4, oracle.jdbc.OracleTypes.ARRAY);
cstmt.registerOutParameter(5, oracle.jdbc.OracleTypes.VARCHAR);
cstmt.execute();
私は実行呼び出しでエラーが発生しています:
java.sql.SQLException: ORA-06550: 行 1、列 7: PLS-00306: 'GETDETAILS' の呼び出しで引数の数または型が間違っています