Alguém pode me dar uma dica.
Como eu faço para executar uma procedure dentro de outra e retornar os registros dessa procedure que foi chamada para a procedure que chama?
desde já agradeço a atenção.
Procedure
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Sex, 23 Jul 2010 10:18 am
- Localização: Igrejinha RS
Marlon Jardel
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Me parece que você quer algo como usar REF CURSOR como parâmetro de saída da procedure.
Posta um pouco mais de informação sobre o problema, aquilo que você precisa solucionar, em vez da solução que você pensou. Talvez dê para repensar a solução de forma mais simples, olhando de outro ângulo.
Posta um pouco mais de informação sobre o problema, aquilo que você precisa solucionar, em vez da solução que você pensou. Talvez dê para repensar a solução de forma mais simples, olhando de outro ângulo.
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Sex, 23 Jul 2010 10:18 am
- Localização: Igrejinha RS
Marlon Jardel
a procedure é + ou - assim.
create procedure X(p1,p2)
variaveis
begin
...
...
...
executar procedure_chamada(P1,P2);
retornar valor;
...
...
end;
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Tu só precisa que a tua procedure de chamada possua um parametro do tipo OUT.
Dae o campo que tu passar nesse parametro vai retornar o que tu desejares da procedure.
Um exemplo :
Dae o campo que tu passar nesse parametro vai retornar o que tu desejares da procedure.
Um exemplo :
create procedure chamada(p1 in number,p2 out boolean) is
begin
if p1 = 1 then
p2:= true;
else
p2 := false;
end if;
end;
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Sex, 23 Jul 2010 10:18 am
- Localização: Igrejinha RS
Marlon Jardel
sim, mas qual é o comando que utilizo para chamar essa procedure, eu criei ela com 4 parametros, 3 deles são in (de entrada) e 1 out(de saida)
estou executando ela da seguinte forma:
esses são os parâmetros de entrada, agora eu quero jogar dentro de uma variável em outra procedure o parâmetro de saída. como faço isso.
ao chamar a procedure da forma que eu coloquei acima, ela acusa um erro:
Número incorreto de tipos de argumentos na chamada para nome_procedure.
estou executando ela da seguinte forma:
nome_procedure(p1,p2,p3);
ao chamar a procedure da forma que eu coloquei acima, ela acusa um erro:
Número incorreto de tipos de argumentos na chamada para nome_procedure.
-
- Rank: Estagiário Sênior
- Mensagens: 11
- Registrado em: Sex, 23 Jul 2010 10:18 am
- Localização: Igrejinha RS
Marlon Jardel
Obrigado pela ajuda pessoal.
Encontrei um outro tópico no fórum que resolveu o meu problema
http://glufke.net/oracle/viewtopic.php? ... metros+out
ao passar os parâmetros para a procedure, eu devo informar os parâmetros de entrada e uma variável que receberá o valor de saída da procedure.
EX:
Obrigado pela atenção de todos.
Encontrei um outro tópico no fórum que resolveu o meu problema
http://glufke.net/oracle/viewtopic.php? ... metros+out
ao passar os parâmetros para a procedure, eu devo informar os parâmetros de entrada e uma variável que receberá o valor de saída da procedure.
EX:
nome_procedure(entrada1,entrada2,entrada3,variavel_que_recebe_saida) ;
- gpilger
- Rank: Programador Júnior
- Mensagens: 29
- Registrado em: Qua, 21 Abr 2010 3:34 pm
- Localização: Novo Hamburgo - RS
Gilson Pilger
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido
"Por não saber que erra impossível, ele foi lá e fez" autor desconhecido
Para chamar uma procedure dentro de outro basta declarar a procedure interna no seção "declare" do bloco PL/SQL.
Exemplo:
Exemplo:
create or replace procedure prc_externa (pA in, pB in) is
declare
-- Minha procedure interna
procedure prc_interna(p1 in, p2 out) is
begin
aqui vai meu código;
end prc_interna;
var_out varchar2(10);
begin
-- aqui chamo minha proc interna
prc_interna('valor 1',var_out);
end prc_externa;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes