Ir para conteúdo

POWERED BY:

Arquivado

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

Eliel

ao chamar procedure

Recommended Posts

Pessoal , boa tarde. Sou iniciante em PL/SQL, estou com um problema e não consigo chamar uma procedure, eu não tenho a procedure, ela está no banco e eu tenho acesso para executá-lá, mas devo estar fazendo alguma coisa errado.

pois quando eu chamo recebo uma mensagem de erro que relato abaixo:

 

chamando:

 

call fce9100p.PRC_SIMULA_EP_FUNC(1000,3);

erro que recebo:

 

ORA-06553: PLS-306: número incorreto de tipos de argumentos na chamada para

'PRC_SIMULA_EP_FUNC'

 

 

 

para que vcs possam saber como ela está tenho a descrição de como ela está armazenada no banco veja:

 

PROCEDURE PRC_SIMULA_EP_FUNC

Argument Name Type In/Out Default?

------------------------------ ----------------------- ------ --------

P_VAL_OPERACAO NUMBER IN

P_COD_PLANO NUMBER IN

P_COD_OPERACAO NUMBER OUT

P_TAX_JUROS_AM NUMBER OUT

P_VAL_PARCELA NUMBER OUT

P_DAT_CREDITO DATE OUT

P_DAT_PRI_VENCTO DATE OUT

P_VAL_TRIBUTO NUMBER OUT

P_VAL_FINANCIADO NUMBER OUT

P_VAL_JUR_FINANCIAMENTO NUMBER OUT

P_VAL_FINANCIAMENTO NUMBER OUT

P_COD_RETORNO NUMBER OUT

P_DES_RETORNO VARCHAR2 OUT

 

 

Alguem conseguiria me ajudar e me explicar como eu devo chamar essa função para que ela me retorne o desejado?

grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola galera> Tentei executar a procedure dessa forma:

var P_COD_OPERACAO				 NUMBER 
 var P_TAX_JUROS_AM				 NUMBER 
 var P_VAL_PARCELA				  NUMBER
 var P_DAT_CREDITO				  varchar2(30)
 var P_DAT_PRI_VENCTO			   varchar2(30)
 var P_VAL_TRIBUTO				  NUMBER 
 var P_VAL_FINANCIADO			   NUMBER 
 var P_VAL_JUR_FINANCIAMENTO		NUMBER 
 var P_VAL_FINANCIAMENTO			NUMBER 
 var P_COD_RETORNO				  NUMBER 
 var P_DES_RETORNO				  VARCHAR2(30)

begin
execute fce9100p.PRC_SIMULA_EP_FUNC(1000,3,:P_COD_OPERACAO,:P_TAX_JUROS_AM,:P_VAL_PARCEL
A,TO_CHAR(:P_DAT_CREDITO, 'DD-MON-YYYY'),TO_CHAR(:P_DAT_PRI_VENCTO, 'DD-MON-YYYY'),:P_VAL_TRIBUTO,:P_VAL_FINANCIADO,:P_VAL_JUR_FINANCIAMENTO,:P_VAL_FINANCIAM
ENTO,:P_COD_RETORN,:P_DES_RETORNO );
end;

 

mas quando eu executo recebo o seguinte erro:

begin fce9100p.PRC_SIMULA_EP_FUNC(1000,3,:P_COD_OPERACAO,:P_TAX_JUROS_AM,:P_VAL_PARCEL
A,TO_CHAR(:P_DAT_CREDITO, 'DD-MON-YYYY'),TO_CHAR(:P_DAT_PRI_VENCTO, 'DD-MON-YYYY'),:P_VAL_TRIBUTO,:P_VAL_FINANCIADO,:P_VAL_JUR_FINANCIAMENTO,:P_VAL_FINANCIAM
ENTO,:P_COD_RETORN,:P_DES_RETORNO ); end;

ORA-01008: nem todas as variáveis são limitadas
P_COD_OPERACAO
---------

P_TAX_JUROS_AM
---------

P_VAL_PARCELA
---------

P_DAT_CREDITO
---------

P_DAT_PRI_VENCTO
---------

P_VAL_TRIBUTO
---------

P_VAL_FINANCIADO
---------

P_VAL_JUR_FINANCIAMENTO
---------

P_VAL_FINANCIAMENTO
---------

P_DES_RETORNO
---------

Alguem poderia me ajudar eu tb to correndo atrás aki!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os parametros do tipo OUT são apenas de saída e devem ser definidos para receber este retorno , não coloque nenhuma conversão (to_date etc) aqui apenas a variável que vai receber o retorno.

Não sei que linguagem está usando assim não dá para avaliar a síntaxe desta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... Esse erro já aconteceu comigo quando eu tava executando uma procedure de atualização...

Esse tipo de erro acontece quando na procedure existem variáveis declaradas e que na hora da execução elas não estão sendo utilizadas...

 

Normalmente eu faço o seguinte:

 

--- DECLARO A VARIÁVEL GLOBAL, COM UM TAMANHO ESPECÍFICO...

 

variable g_retorno varchar2(500)

 

--- EXECUTAR A PROCEDURE

 

exec NOME DA PROCEDURE (&var_in_1,&var_in_2,...,:g_retorno);

print :g_retorno;

/

 

OBS:

VAR_IN_1 - primeira variável do tipo IN

VAR_IN_2 - segunda variável do tipo IN(e assim por diante)

OBS2: O SINAL & na frente da variável vai chamar ela através de prompt. Caso a variável seja do tipo STRING ou DATA, você deverá colocar a variável entre apóstrofes. Ex: '&var_in_1'.

 

Espero ter ajudado.

 

Valeu!

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.