0

以下は私の 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' の呼び出しで引数の数または型が間違っています

4

1 に答える 1