Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Harley Coimbra

Como Chamar um Procedure Simples com Param de Saida

Recommended Posts

Ola..

 

Quando essa procedure não tinha parametro de saida eu chamava ela assim :

begin

getsequencia('FORNECEDOR','CODIGO_FOR',1);

end;

 

So que agora não consigo chamar ela nem colocando null o paramentro de saida, alguem aí pode me ajudar..????

 

 

 

Segue a baixo o esqueleto da procedure.

 

 

create or replace procedure GetSequencia(sNomeTabela in Varchar2, sNomeCampo in Varchar2, pbIncrementar in Varchar := 1, nSequencia out Varchar) is

Result Number;

SqlProximoValor Varchar2(256); --string que recebe o comando SQL dinâmico

 

begin

SELECT COUNT(0) Into Result

FROM SEQUENCIAS

WHERE TABELA = sNomeTabela AND CAMPO = sNomeCampo;

 

if Result = 0 Then

Result := 1;

SqlProximoValor := 'SELECT Max(sNomeCampo) FROM' || sNomeTabela;

EXECUTE IMMEDIATE SqlProximoValor INTO Result;

 

else

SELECT SEQUENCIA into Result

FROM SEQUENCIAS

WHERE TABELA = sNomeTabela AND CAMPO = sNomeCampo;

end if;

 

 

if pbIncrementar = 1 then

AlteraSequencia(sNomeTabela,snomecampo, Result + 1); // Função que ela chama.. mas aqui tá tudo bem

nSequencia := Result + 1;

end if;

 

COMMIT WORK;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare uma variavel do tipo do parametro.

 

Coloque esta variavel na chamada da SP e o valor será retornado nela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

declare uma variavel do tipo do parametro.

 

Coloque esta variavel na chamada da SP e o valor será retornado nela.

 

Ola.. Mota.. a variavel já esta criada..

 

O que gostaria de saber como chamar ela no Pl/Sql

 

Tipo

 

begin

getsequencia('FORNECEDOR','CODIGO_FOR',1); Antes éra assim e funcionava

end;

 

Aí tentei chamar assim e nda :

begin

getsequencia('FORNECEDOR','CODIGO_FOR',1,Null); end; // Não Dá Certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O último parametro de getsequencia deve ser o de output ...

 

então faça :

 

vn_seq_getsequencia number; -- declarre esta variável

 

 

begin

 

getsequencia('FORNECEDOR','CODIGO_FOR',1,vn_seq_getsequencia);

 

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.