FRM-30433 [message #239018] |
Mon, 21 May 2007 05:06 ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
|
I have a block based over on procedure(Query data source type=procedure), on query data source name I put PKG_x (this is my database package), then on Query data source arguments I put d_name, type is varchar2, type name is mvar, value is :global.name. When I press ctrl+T, I get this error:
FRM-30433: Query procedure should have only one argument of type REFCURSOR/TABLE and its mode should be IN OUT
Here's my Databse package:
CREATE OR REPLACE PACKAGE Pkg_Eval IS
TYPE clmusr IS RECORD (
unam VARCHAR2(50),
cuname VARCHAR2(50));
success CONSTANT NUMBER :=0;
TYPE clm_usr_ref IS REF CURSOR RETURN clmusr;
--TYPE clm_usr_tab IS TABLE OF clmusr INDEX BY BINARY_INTEGER;
PROCEDURE query_procedure (resultset IN OUT clm_usr_ref, d_name IN VARCHAR2);
END;
Package body:
CREATE OR REPLACE PACKAGE BODY Pkg_Eval IS
FUNCTION get_success RETURN NUMBER IS
BEGIN
RETURN(success);
END;
PROCEDURE query_procedure (resultset IN OUT clm_usr_ref, d_name IN OUT VARCHAR2) IS
BEGIN
OPEN resultset FOR
SELECT a.username, a.complete_name
FROM CLM_USR a
WHERE a.username = d_name;
END query_procedure;
END;
/
|
|
|
|
|