Thunder!
É verdade cara! Tinha me esquecido dessas passagens. VARCHAR2 em tabela vai até 4K e em PL/SQL até 32K. Está correto mesmo!
Fiz uns testes aqui de besta, e deu para percerber a diferença!
SQL> ed
Gravou file afiedt.buf
1 declare
2 teste varchar2(32767);
3 begin
4 teste := LPAD('RODRIGO',32767,'0');
5 dbms_output.put_line ('Tamanho:' || length(teste));
6* end;
SQL> /
Tamanho:32767
Procedimento PL/SQL concluÝdo com sucesso.
SQL> create table TST (a varchar2(32000));
create table TST (a varchar2(32000))
*
ERRO na linha 1:
ORA-00910: specified length too long for its datatype
SQL> create table TST (a varchar2(4000));
Tabela criada.
SQL> alter table TST modify a varchar2(4001);
alter table TST modify a varchar2(4001)
*
ERRO na linha 1:
ORA-00910: specified length too long for its datatype
SQL> alter table TST modify a varchar2(4000);
Tabela alterada.
Abraços,
Rodrigo Almeida[/code]