Como executar um procedimento armazenado no programador SQL do oracle?
Estou a tentar executar este procedimento armazenado.
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;
/
Mas dá - me este erro.
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:
Alguém sabe o que se passa ?
Obrigado.
25
Author: Nick Krasnov, 2013-11-25
3 answers
Tente executar o procedimento assim,
var c refcursor;
execute pkg_name.get_user('14232', '15', 'TDWL', 'SA', 1, :c);
print c;
42
Author: Dba, 2013-11-25 07:15:15
Considere que criou um procedimento como o abaixo.
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;
No desenvolvimento SQL da Oracle, você pode executar este procedimento de duas maneiras.
1. Usar a folha de trabalho SQL
Crie uma folha de trabalho SQL e escreva um bloco anónimo PL/SQL como este e carregue em 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. Usar os controlos da interface
Expandir Os Procedimentos
Carregue com o botão direito no processo que criou e carregue em executar
Na janela pop-up, preencha os parâmetros e carregue em OK .
2
Author: dheeran, 2017-05-19 21:10:21
-- Se não for necessário passar parâmetros a um procedimento, basta:
Comecem. MY_PACKAGE_NAME. MY_ PROCEDURE_NAME END; -1
Author: Ania, 2018-07-25 19:20:17