Legal pessoal.

 

Obrigado pelos retornos, Chiappa e Rodrigo.

 

Estarei intermediando essa tentativa de tipo de campos com a empresa
responsável pelo sistema.

 

Novamente obrigado pelo auxílio.

 

Abraços,

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de jlchiappa
Enviada em: Friday, July 31, 2009 3:24 PM
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: ** Insert em Campo LONG **

 

  

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 <mailto:oracle_br%40yahoogrupos.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!
>





[As partes desta mensagem que não continham texto foram removidas]

Responder a