Rodrigo, é tudo verdade, mas pelo que o colega lá fala, o que ele está fazendo 
é num programa SQL mandar um :

INSERT INTO tabelacomLONG values (nn, 'stringcommaisde4milcaracteres');

em sendo isso, a questão Não É limite do databse em si, mas sim da linguagem 
SQL, no dialeto SQL do banco Oracle uma string só pode ter 4 mil caracteres no 
máximo, é limitação DA LINGUAGEM SQL.... Pra ele ver que é isso, basta se 
encapsular num programa PL/SQL, que aí o limite de strings únicas passa a ser o 
do PL/SQL, que é 32 Kb, abaixo boto um exemplinho....
 
Robson, só uma coisa : o dataype LONG no banco 10g já foi DEPRECIADO há anos & 
anos, vc NÃO DEVERIA estar trabalhando com ele no 10g, eles já deveriam ter 
sido convertidos para LOBs, pois (entre outras vantagens muitas) a Oracle para 
LOBs já fornece uma API pra se "quebrar" uma string comprida em pedaços 
manipuláveis pelos limites doSQL e do PL/SQL (é a DBMS_LOB), pra LONGs vc está 
absolutamente por sua conta....

O exemplinho (com a string editada que senão o yahoo!groups trunca a mensagem, 
mas faça por inteiro que garanto que funfa)  :

sys...@10g:SQL>create table t (c1 number, c2 long);

Tabela criada.

sys...@10g:SQL>get c:\1.sql
SP2-0161: linha 1 truncada.
  1  insert into T values(1, 
'1234567890123456789012345678901234567890....stringcommenosde4000caracteres...1234567890123456789012345678901234567890');

1 linha criada.

sys...@10g:SQL>commit;

Commit concluído.

sys...@10g:SQL>get c:\1.sql
  1  insert into T values(1, 
'1234567890123456789012345678901234567890...stringcomMAISde4000caracteres...12345');

sys...@10g:SQL>/
insert into T values(1, '1234567890....12345'
                        *
ERRO na linha 1:
ORA-01704: literal de string extenso demais


sys...@10g:SQL>get c:\1.sql
  1  DECLARE
  2     v_string varchar2(32767) := 
'12345678901234567890..stringcommaisde4000caracteres...12345';
  4  BEGIN
  5     insert into T values(1, v_string);
  6* END;
sys...@10g:SQL>/

Procedimento PL/SQL concluído com sucesso.

sys...@10g:SQL>set long 5000
sys...@10g:SQL>select * from t;

                C1 C2
------------------ 
--------------------------------------------------------------------------------
                 1 1234567890....01234567890123456789012345678901234567890
                 1 1234567890....0123456789012345678901234567890123456789012345


sys...@10g:SQL>
--- Em oracle_br@yahoogrupos.com.br, Rodrigo Mufalani <mufal...@...> escreveu
>
> Boa tarde,
> 
>     Há um documento chamado database limits. Dê uma olhada em
> http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/limits001.htm#i287903
> 
> Datatype Limits
> Datatypes     Limit   Comments
> BFILE         Maximum size: 4 GB
> 
> Maximum size of a file name: 255 characters
> 
> Maximum size of a directory name: 30 characters
> 
> Maximum number of open BFILEs: see Comments
>       The maximum number of BFILEs is limited by the value of the
> SESSION_MAX_OPEN_FILES initialization parameter, which is itself limited
> by the maximum number of open files the operating system will allow.
> BLOB  Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
> (8 TB to 128 TB)      The number of LOB columns per table is limited only by
> the maximum number of columns per table (that is, 1000Foot 1 ).
> CHAR  Maximum size: 2000 bytes
> CHAR VARYING  Maximum size: 4000 bytes
> CLOB  Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization parameter
> (8 TB to 128 TB)      The number of LOB columns per table is limited only by
> the maximum number of columns per table (that is, 1000Footref 1).
> Literals (characters or numbers in SQL or PL/SQL)     Maximum size: 4000
> characters
> LONG  Maximum size: 2 GB - 1  Only one LONG column is allowed per table.
> NCHAR         Maximum size: 2000 bytes
> NCHAR VARYING         Maximum size: 4000 bytes
> NCLOB         Maximum size: (4 GB - 1) * DB_BLOCK_SIZE initialization 
> parameter
> (8 TB to 128 TB)      The number of LOB columns per table is limited only by
> the maximum number of columns per table (that is, 1000Footref 1).
> NUMBER        999...(38 9's) x10125 maximum value     Can be represented to 
> full
> 38-digit precision (the mantissa).
> -999...(38 9's) x10125 minimum value  Can be represented to full
> 38-digit precision (the mantissa).
> Precision     38 significant digits
> RAW   Maximum size: 2000 bytes
> VARCHAR       Maximum size: 4000 bytes
> VARCHAR2      Maximum size: 4000 bytes
> 
> Atenciosamente,
> 
> Rodrigo Mufalani
> OCP 10g & 11g
> OCE RAC 10g R2
> mufal...@...
> http://mufalani.blogspot.com
> 
> 
> 
> > Mensagem Original:
> > Data: 14:47:20 31/07/2009
> > De: Robson Muniz (Terra) <rmunizso...@...>
> > Assunto: [oracle_br] ** Insert em Campo LONG **
> 
> > Srs, estou efetuando um insert em campo LONG, porém, quando efetuo um insert
> > com mais de 4000 caracteres, o mesmo diz que estou inserindo valores a mais
> > do que o campo suporta.
> >
> >
> >
> > Sabem me dizer qual a quantidade de caracteres suportada para um campo tipo
> > Long no Oracle 10g ?
> >
> >
> >
> > Existe algum parâmetro de banco que possa estar impactando nesse ponto?
> >
> >
> >
> > Obrigado a todos.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > --------------------------------------------------------------------------------------------------------------------------
> >> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de 
> >> inteira responsabilidade de seus remetentes.
> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > --------------------------------------------------------------------------------------------------------------------------
> >> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure 
> >> » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
> >> http://www.oraclebr.com.br/
> > ------------------------------------------------------------------------------------------------------------------------
> >  Links do Yahoo! 
> > Grupos
> >
> >
> >
> >
> 
> 
> 
> 
> --------------------------------------------------------------------------------
> Na Oi Internet você ganha ou ganha. Além de acesso grátis com
> qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma,
> suporte grátis e muito mais. Baixe grátis o Discador Oi em
> http://www.oi.com.br/discador e comece a ganhar.
> 
> Agora, se o seu negócio é voar alto na internet,
> assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em
> http://www.oi.com.br/bandalarga e aproveite essa moleza!
>


Responder a