› Fóruns › SQL e PL/SQL › Chamar uma Procedure dentro de uma outra Procedure
- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 15 anos atrás por
eduardoamf.
-
AutorPosts
-
9 de maio de 2011 às 11:56 pm #99123
eduardoamf
ParticipantePessoal, estou com dificuldade de chamar uma Procedure dentro de uma outra Procedure.
já tentei com o OWNE.nome_da_procedure, call …
até com elza sozinha, deu erro ora-00306..Alguem sabe como me ajudar??
Obrigado!!
10 de maio de 2011 às 12:16 am #99126felipeg
ParticipanteBoa tarde
Pra chamar a procedure é só declarar a mesma (sem exec sem nada) e passar os parâmetros ( se existirem).
O exemplo abaixo chama a proc 1, que imprime um valor na tela, e passa esse mesmo parâmtero pra 2, que também imprime em tela.
SQL> set serveroutput on;
SQL> CREATE OR REPLACE PROCEDURE IMPRIME_TEXTO2(v_string2 IN VARCHAR2)
2 AS
3 BEGIN
4 Dbms_Output.put_line(v_string2);
5 END;
6 /Procedimento criado.
SQL> CREATE OR REPLACE PROCEDURE IMPRIME_TEXTO(v_string IN VARCHAR2)
2 AS
3 BEGIN
4 Dbms_Output.put_line(v_string || ‘ chamada proc1’);
5 IMPRIME_TEXTO2(v_string || ‘ chamada proc2’);
6 END;
7 /Procedimento criado.
SQL> EXEC IMPRIME_TEXTO(‘ HELLO WORLD’);
HELLO WORLD chamada proc1
HELLO WORLD chamada proc2Lembrando que se a procedure for de outro schema o usuário deverá ter grant de execute na mesma.
Atenciosamente,
Felipe.10 de maio de 2011 às 5:20 pm #99138eduardoamf
Participante[quote=”felipeg”:2c4pmcq2]Boa tarde
Pra chamar a procedure é só declarar a mesma (sem exec sem nada) e passar os parâmetros ( se existirem).
O exemplo abaixo chama a proc 1, que imprime um valor na tela, e passa esse mesmo parâmtero pra 2, que também imprime em tela.
SQL> set serveroutput on;
SQL> CREATE OR REPLACE PROCEDURE IMPRIME_TEXTO2(v_string2 IN VARCHAR2)
2 AS
3 BEGIN
4 Dbms_Output.put_line(v_string2);
5 END;
6 /Procedimento criado.
SQL> CREATE OR REPLACE PROCEDURE IMPRIME_TEXTO(v_string IN VARCHAR2)
2 AS
3 BEGIN
4 Dbms_Output.put_line(v_string || ‘ chamada proc1’);
5 IMPRIME_TEXTO2(v_string || ‘ chamada proc2’);
6 END;
7 /Procedimento criado.
SQL> EXEC IMPRIME_TEXTO(‘ HELLO WORLD’);
HELLO WORLD chamada proc1
HELLO WORLD chamada proc2Lembrando que se a procedure for de outro schema o usuário deverá ter grant de execute na mesma.
Atenciosamente,
Felipe.[/quote]Blz, funcionou… estava colocando com o tipo dos parametros e estava dando erro!!
Valeu, obrigado!!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Chamar uma Procedure dentro de uma outra Procedure