Ir para conteúdo

Arquivado

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

Joelmir

Oracle XE

Recommended Posts

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

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

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

×

Informação importante

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