Ricardo,

A API que o SQLWindows utiliza para o Oracle é baseada no Oracle 7, o que traz alguns problemas, e este é um deles, limitação de 2000 caracteres de buffer para campos varchar2 ou long varchar.

A melhor solução é fazer uma PROCEDURE no oracle, utilizando um parametro varchar2 OUT, onde internamente você executa o select deste campo jogando o resultado no parâmetro, dentro do SQLWindows você simplesmente executa a procedure com SqlPLSQLCommand ou SqlOraPLSQLPrepare/Execute.

no oracle:

create or replace
procedure prc_select (s_return out varchar2) as
begin
   select campo into s_return
   from tabela;
end;
/

no SQLWindows:

Call SqlPLSQLCommand('prc_select(:var1)');

Sds,
Erasmo

--
 

Erasmo Bispo de Oliveira Junior
Gerente de Projetos

Softway - SoftComex Informatica Ltda.

Web: http://www.softcomex.com.br
Email:
[EMAIL PROTECTED]
Fone: +55 (19) 3739-9241
Fax: +55 (19) 3739-9240



Ricardo Gomes wrote:
Bom dia, pessoal. Não estou conseguindo recuperar o conteúdo completo de um
campo varchar2(4000) do oracle, que está completamente preenchido. Depois de
fazer um select, verifico que o tamanho da variável é 2000, ou invés de
4000. Fazendo um teste, recuperei o campo em duas partes, como mostro
abaixo:

select substr(campo,1,2000), substr(campo,2001,2000) ... into :var1, :var2
Set sResult = var1 || var2

e funcionou. No entanto, se faço:

select campo ... into :sResult

a variável sResult fica com somente 2000 dos 4000 caracteres que compõem o
campo no banco. No meu sql.ini estou usando longbuffer=128000. Alguém sabe
como resolver isso?

Obrigado.

Ricardo.

===========================================Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
===========================================
  


<<inline: Softway.gif>>

Responder a