Eliel 0 Denunciar post Postado Janeiro 7, 2008 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
Eliel 0 Denunciar post Postado Janeiro 7, 2008 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
Motta 645 Denunciar post Postado Janeiro 8, 2008 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
maltamatheus 0 Denunciar post Postado Janeiro 12, 2008 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