Galera,
Estou com o seguinte problema, executo uma procedure no SQLServer 2000 que retorna 8000 bytes no query analyzer, ao rodar no java só retorna 4000, vejam parte do código:
O que dá para chutar é que para o driver da Microsoft ambos os tipos (NVARCHAR e VARCHAR) são tratados da mesma maneira.
(Obviamente poderíamos tentar descompilar o driver já que é 100% java mas, para começar, estaríamos violando a licença…)
Como o campo NVARCHAR pode ter no máximo 4000 caracteres (limitação do banco), ele deve estar achando que um VARCHAR também pode ter no máximo 4000 caracteres…
Talvez o JTDS também tenha uma limitação dessa, mas não sei exatamente onde. Só testando (não vi se isso aparece no FAQ, por exemplo; ele só menciona que se você usar o protocolo antigo, compatível com o SQL 6.5, campos IMAGE (BLOBs em Java ou Oracle) podem ter no máximo 4000 bytes. Mas para usar o protocolo antigo é necessário ter uma string de conexão especial.