Ir para conteúdo

Arquivado

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

Ricardo Ferreira

Oracle 8i

Recommended Posts

Pessoal,Criei uma função no Java que me retorna uma Query de 180 linhas. Utilizei o StringBuffer para concatenar a query na classe Teste2 e retorna-la em formato de String.Quando executo a chamada desta função no Oracle, ele diz que ocorreu um erro durante a compilação.Fiz uns testes e cheguei a conclusão que até uma determinada linha da query concatenada ele funciona normalmente, retornando-a sem problema algum, mas em um determinado ponto o Oracle dá erro, como se não suportasse o tamanho da query. -- ESTE É O SCRIPT DE CRIAÇÃO DA FUNÇÃO NO ORACLE BASEADA NA FUNÇÃO DO JAVA-- AQUI ELE EXECUTA SEM NENHUM ERROCREATE OR REPLACE FUNCTION Teste2 (cadastro VARCHAR2) RETURN LONGAS LANGUAGE JAVA NAME 'Teste2.retornaquery2(java.lang.String) return java.lang.String';-- ESTE É BLOCO DE EXECUÇÃO QUE DÁ O ERRODECLARE v_sql LONG;BEGIN v_sql:= Teste2('110226154');END;Alguem pode me ajudar??A função compila normal no Java, o que leva a crer que o erro não está lá e sim na hora de compilar e executar no Oracle.Caso alguem não entendeu o meu problema e queira me ajudar, podem mandar emails para rpunker@terra.com.brMuito obrigado,Ricardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não retorna erro... ele apenas diz:"Warning: PL/SQL procedure successfully completed with compilation errors"somente isso!O que pode estar acontecendo? Eu creio que o Oracle não está aceitando até um limite de linhas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está compilando via SQL*PLUS!

 

Recompila ela novamente e depois digite:

 

SQL > show errors

 

Ele irá exibir o erro que está na procedure e a linha.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela dica Rodrigo.Verifiquei que o erro está realmente no truncamento da string.O pior é que eu utilizo o tipo LONG do Oracle para armazenar a string vinda do Java.Pelo que estou vendo, fica inviável a forma como eu queria trabalhar, ou seja, trazendo a query numa string vinda do Java.Existe alguma maneira mais fácil de se fazer isso?muito obrigado,Ricardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim truncamento da STRING?

 

Essa STRING você está guardando dentro de um campo da tabela Oracle.

 

Tente tirar de LONG e passar para varchar2, caso não seja muito grande.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

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.