Cũng giống như PHP:
String dbCall = "{ ? = call pa_internal_admin.fn_search_level_1(?) }";
proc = dbConn.connection().prepareCall( dbCall );
proc.registerOutParameter(1, OracleTypes.CURSOR);
proc.setString(2, searchText);
Hoặc nếu bạn thích, thậm chí còn giống hơn:
String dbCall = "BEGIN ? := pa_internal_admin.fn_search_level_1(?); END;";
Bạn đã cố gắng gọi nó là một thủ tục có hai tham số, chứ không phải là một hàm có một; bạn không thể tự ý thay đổi điều đó trong cuộc gọi của mình.
Bạn có thể lấy lại con trỏ bằng:
OracleResultSet rSet = (OracleResultSet) proc.getCursor(1);
... và sau đó xử lý nó giống như bất kỳ tập hợp kết quả nào khác.