Joelmir 0 Denunciar post Postado Agosto 23, 2013 Bom dia! Estou com um pequeno problema ao executar um select no oracle 11 XE no qual utilizo a chamada de uma função,segue exemplo: SELECT finvnusec (cadpro.nusec) || ' por ' || cadpro.cdusua || '-' || sysusu.nmusua aut FROM cadpro, sysusu WHERE cadpro.cdusua = sysusu.cdusua; Explicação: o campo cadpro.nusec nada mais é do que informações de data e hora de alteração na tabela,porém calculados por uma outra função "fnusec" a qual não vem ao caso... para efeitos de demonstração o campo nusec pode conter algo do tipo : 743417258 que é gerado pela função FNUSEC. A função do select acima, FINVNUSEC é o inverso da FNUSEC, que vai receber por exemplo o valor "743417258" e retornara o seguinte: "23/07/2013 08:47:38". Este select executado em outras versões funciona normalmente,mas no XE dá o seguinte erro: ORA-06552: PL/SQL: Compilation unit analysis terminated ORA-06553: PLS-553: nome do conjunto de caracteres não é reconhecido Se eu passar o valor "743417258" diretamente para a função,ela executa,porem se passar o campo da tabela que contem este mesmo valor da o erro citado acima. Exemplo: SELECT finvnusec ('123456789') || ' por ' || cadpro.cdusua || '-' || sysusu.nmusua aut FROM cadpro, sysusu WHERE cadpro.cdusua = sysusu.cdusua; Outra forma que executa: FOR teste IN (SELECT cadpro.nusec FROM cadpro, sysusu WHERE cadpro.cdusua = sysusu.cdusua) LOOP SELECT finvnusec (teste.nusec) INTO v_result FROM DUAL; DBMS_OUTPUT.put_line (v_result); END LOOP; O problema esta apenas no XE, e especificamente quando chamada a função dentro do select conforme mostrado no inicio. Alguém saberia informar porque acontece este erro? Grato! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Agosto 23, 2013 função "fnusec" a qual não vem ao caso não creio, ela me parece ser a fonte do problema Que types recebe de parametro, que type retorna ? Compartilhar este post Link para o post Compartilhar em outros sites
Joelmir 0 Denunciar post Postado Agosto 23, 2013 Olá, Problema solucionado. a Função FINVNUSEC recebe e retorna um VARCHAR2, porem o campo no qual eu estava passando como parametro (cadpro.nusec) é um char(10) e eis o motivo do erro. Nas bases testadas funcionava no Oracle 11g Enterprise,mas no XE ocorria o erro. Compartilhar este post Link para o post Compartilhar em outros sites