plsq からファイル ハンドルを取得しようとしています。Java から plsql パッケージをテストできるかどうかを確認しようとしています。次のコードがあります。
Properties props = Utils.readProps("database.properties");
Connection con = DBManager.getConnection(props.getProperty("url"), props.getProperty("username"), props.getProperty("password"));
Object file_type = new Object[3];
STRUCT oracleRecord;
try {
//StructDescriptor fileType = StructDescriptor.createDescriptor("UTL_FILE.FILE_TYPE",con);
CallableStatement stmt = con.prepareCall("{call simple_test.caller(?,?,?)");
stmt.setObject(1, "/u01/home/oracle/EI/278");
stmt.setObject(2, "ql_item_test.txt");
stmt.registerOutParameter(3, OracleTypes.STRUCT, "UTL_FILE.FILE_TYPE");
stmt.execute();
oracleRecord = ((OracleCallableStatement)stmt).getSTRUCT(3);
file_type = oracleRecord.getAttributes();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
そして、このplsqlコード:
PROCEDURE caller(file_path VARCHAR2,
file_name VARCHAR2,
fp OUT UTL_FILE.file_type) IS
maxLineSize INTEGER;
BEGIN
maxLineSize := 1024;
fp := UTL_FILE.FOPEN(file_path, file_name, 'R', maxLineSize);
END;
しかし、私がそれを実行したとき、私はこのエラーを推測します:
java.sql.SQLException: invalid name pattern: UTL_FILE.FILE_TYPE
plsql 型を渡す/取得できないため、このエラーが発生しますか?