I'm trying to run this stored procedure
DECLARE P_TICKER_SERIAL VARCHAR2(200); P_SECTOR_CODE VARCHAR2(200); P_SOURCE_ID VARCHAR2(200); P_COUNTRY_CODE VARCHAR2(200); P_FILTER_TYPE NUMBER; CUR_OUT SYS_REFCURSOR; dbUserTable DBUSER%ROWTYPE; BEGIN P_TICKER_SERIAL :='14232'; P_SECTOR_CODE := '15'; P_SOURCE_ID := 'TDWL'; P_COUNTRY_CODE := 'SA'; P_FILTER_TYPE := 1; PKG_name.GET_user( P_TICKER_SERIAL => P_TICKER_SERIAL, P_SECTOR_CODE => P_SECTOR_CODE, P_SOURCE_ID => P_SOURCE_ID, P_COUNTRY_CODE => P_COUNTRY_CODE, P_FILTER_TYPE => P_FILTER_TYPE, CUR_OUT => CUR_OUT ); open CUR_OUT; LOOP FETCH CUR_OUT INTO dbUserTable; dbms_output.put_line(dbUserTable.email); END LOOP; CLOSE CUR_OUT; END; /
But it gives me this error
Error report: ORA-06550: line 8, column 15: PLS-00201: identifier 'DBUSER' must be declared ORA-06550: line 8, column 15: PL/SQL: Item ignored ORA-06550: line 24, column 2: PLS-00382: expression is of wrong type ORA-06550: line 24, column 2: PL/SQL: SQL Statement ignored ORA-06550: line 26, column 24: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 26, column 5: PL/SQL: SQL Statement ignored ORA-06550: line 27, column 28: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 27, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
Any one knows what is wrong ? Thanks.
Expand the database that you want, expand Programmability, and then expand Stored Procedures. Right-click the user-defined stored procedure that you want and select Execute Stored Procedure. In the Execute Procedure dialog box, specify a value for each parameter and whether it should pass a null value.
All you need to do is open your first script, compile. sql in SQL Developer and then click Run script (or press F5 function key).
Try to execute the procedure like this,
var c refcursor; execute pkg_name.get_user('14232', '15', 'TDWL', 'SA', 1, :c); print c;
Consider you've created a procedure like below.
CREATE OR REPLACE PROCEDURE GET_FULL_NAME like ( FIRST_NAME IN VARCHAR2, LAST_NAME IN VARCHAR2, FULL_NAME OUT VARCHAR2 ) IS BEGIN FULL_NAME:= FIRST_NAME || ' ' || LAST_NAME; END GET_FULL_NAME;
In Oracle SQL Developer, you can run this procedure in two ways.
1. Using SQL Worksheet
Create a SQL Worksheet and write PL/SQL anonymous block like this and hit f5
DECLARE FULL_NAME Varchar2(50); BEGIN GET_FULL_NAME('Foo', 'Bar', FULL_NAME); Dbms_Output.Put_Line('Full name is: ' || FULL_NAME); END;
2. Using GUI Controls
Expand Procedures
Right click on the procudure you've created and Click Run
In the pop-up window, Fill the parameters and Click OK.
Cheers!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With