Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - OFF TOPIC

2007-04-10 Por tôpico Marcio Portes
Aqui na lista, ainda não tinha divulgado. Aquele dia foi muito engraçado...
O pior é que tudo aquilo aconteceu!! É verídico.
Obrigado pelo feedback. Abraços,

On 4/10/07, FERNANDES Marco A SOFTTEK <[EMAIL PROTECTED]>
wrote:
>
>   Fala Márcio, beleza ?
>
> Vc já deve ter publicado isso aqui na lista mas como aproveitei
> pra vasculhar seu blog eu achei essa preciosidade !!! risos
> http://mportes.blogspot.com/2005/07/dba-de-peso.html
>
> Muito bom ! Acho que muitos aqui vão gostar ! risos
> Nada como encarar a vida de bom humor ! parabéns !
>
> Valeu pela contribuição do clob ! matou a pau !
>
> abraço,
> Marco.
> 
>
> From: oracle_br@yahoogrupos.com.br [mailto:
> oracle_br@yahoogrupos.com.br ] On Behalf
> Of PUB: Marcio Portes
> Sent: terça-feira, 10 de abril de 2007 11:38
> To: oracle_br@yahoogrupos.com.br 
> Subject: Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres -
> URGENTE
>
> A curiosidade matou o gato.
>
> Fiz o exemplo e postei no blog.
> http://mportes.blogspot.com/2007/04/dbmslob-10g.html <
> http://mportes.blogspot.com/2007/04/dbmslob-10g.html>
>
> Funciona, mas é preciso abrir o arquivo com 'wb' senão ele continua
> limitando em 32k.
>
> On 4/10/07, jlchiappa <[EMAIL PROTECTED]  jlchiappa% 40yahoo.com.br> > wrote:
> >
> > Só complementando - agora, pensando mais friamente, acho que o
> > put_raw vai funcionar sim : o limite existe MAS como o raw não
> > adiciona nem procura por caracter eol, o cara vai poder ler a linha
> > lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em
> > http://www.oracle-base.com/articles/9i/ExportBlob9i.php <
> http://www.oracle-base.com/articles/9i/ExportBlob9i.php> , sim...
> >
> > []s
> >
> > Chiappa
> > --- Em oracle_br@yahoogrupos.com.br  oracle_br%40yahoogrupos.com.br> ,
> > "jlchiappa" <[EMAIL PROTECTED]>
> > escreveu
> >
> > >
> > > Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo -
> > e
> > > na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling
> > > de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que
> > > nada mais é do que uma série de structs C com alguns programinhas
> > que
> > > os acessam, e sabendo que muitos desses caras foram limitados em 32
> > > Kb - que é o valor máximo pra vários compiladores C em ambiente 32
> > > bits - , eu já imaginava que devia ter esse limite Quanto à
> > > utl_file.put_raw, não sei se funcionaria, já que a própria chamada
> > > inicial obrigatória do utl_file.fopen tem o limite, é testar
> > >
> > > []s
> > >
> > > Chiappa
> > > --- Em oracle_br@yahoogrupos.com.br 
> > >  oracle_br%40yahoogrupos.com.br> ,
> > "Marcio Portes"
> > >  escreveu
> > > >
> > > > Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
> > > > Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra
> > > dedeu.
> > > > Outra possibilidade além de rotina externa, poderia ser gravar
> > isso
> > > em blob,
> > > > usando o put_raw. (mas é chute, não testei...)
> > > >
> > > > On 4/10/07, jlchiappa  wrote:
> > > > >
> > > > > Márcio, ao que eu entendi o cara quer ler/gravar arquivo
> > texto
> > > com
> > > > > linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> > > > > limitação da própria UTL_FILE, o manual "Oracle(r) Database
> > PL/SQL
> > > > > Packages and Types Reference" no capítulo sobre a UTL_FILE já
> > nos
> > > diz
> > > > > (grifo com *s meu) :
> > > > >
> > > > > "
> > > > > UTL_FILEFOPEN Function
> > > > > This function opens a file. You can specify the maximum line
> > size
> > > and
> > > > > have a maximum of 50 files open simultaneously. See also
> > > FOPEN_NCHAR
> > > > > Function.
> > > > >
> > > > > Syntax
> > > > >
> > > > > UTL_FILE.FOPEN (
> > > > > location IN VARCHAR2,
> > > > > filename IN VARCHAR2,
> > > > > open_mode IN VARCHAR2,
> > > > > max_linesize IN BINARY_INTEGER)
> > > > > RETURN file_type;
> > > > >
> > > > > Parameters
> > > > >
> > > > > ... blablabla ...
> > > > >
> > > > > max_linesize Maximum number of characters for each line,
> > including
> > > > > the newline character, for this file (minimum value 1, 
> > > maximum
> > > > > value 32767  ). If unspecified, Oracle supplies a default
> > > value
> > > > > of 1024.
> > > > > "
> > > > >
> > > > > ===> então com utl_file essa (estranha!!) requisição de
> > ler/gravar
> > > > > arquivo com linhas maiores que isso não rola, extrapola o
> > limite
> > > da
> > > > > utl_file - digo estranha porque muitas vezes nem editores de
> > texto
> > > > > especializados manipulam arquiivos com linhas to largas, é
> > > > > incomum pra dizer o mínimo Pra essa necessidade então o
> > colega
> > > > > terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> > > > > provavelmente) e a chamar do PL/SQL via external proc ou java
> > > proc.
> > > > >
> > > > > []s
> > > > >
> > > > > Chiappa
> > > > >
> > > > > --- Em 
> > > > > oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br>  .br> > > 40yahoogrupos.co

Re: [oracle_br] Join

2007-04-10 Por tôpico Marcio Portes
Fabio,
Se não colocar nada no relacionamento, a query retorna PRODUTO CARTESIANO.
Portanto, em sua sugestão, a segunda query vai provocar produto cartesiano,
não full outer join. Ex. se a t1 tem 10 linhas e a t2 tem 10, a segunda
query vai trazer 100 linhas (10x10). Dá para reproduzir facilmente.

ops$marcio:LX10G> create table t1 as select rownum id from all_users where
rownum <= 10;

Table created.

ops$marcio:LX10G> create table t2 as select (rownum+5) id from all_users
where rownum <= 10;

Table created.

ops$marcio:LX10G>
ops$marcio:LX10G> select * from t1 full outer join t2 on ( t1.id = t2.id )
order by 1;

   IDID
- -
1
2
3
4
5
6 6
7 7
8 8
9 9
   1010
 14
 13
 15
 12
 11

15 rows selected.

ops$marcio:LX10G>
ops$marcio:LX10G> select count(*) from t1, t2;

 COUNT(*)
-
  100

1 row selected.

ops$marcio:LX10G>
ops$marcio:LX10G> select * from t1, t2 where t1.id = t2.id (+)
  2  union all
  3  select * from t1, t2 where t1.id (+) = t2.id and t1.id is null
  4  order by 1
  5  /

   IDID
- -
1
2
3
4
5
6 6
7 7
8 8
9 9
   1010
 11
 12
 13
 14
 15

15 rows selected.


On 4/10/07, Fabio Santos <[EMAIL PROTECTED]> wrote:
>
>   Qual a versão do oracle?
>
> Se for 9i, pode fazer com full outer join. Se for 8i eh so nao colocar
> nada no relacionamento
>
> select t1.c1, t2.c1
> from t1
> full outer join t2
> on t1.c1 = t2.c1;
>
> ou
>
> select t1.c1, t2.c1
> from t1, t2;
>
>
>
> -Mensagem original-
> De: oracle_br@yahoogrupos.com.br  [mailto:
> oracle_br@yahoogrupos.com.br ]
> Em nome de Cristiano Mascarenhas da Silva
> Enviada em: segunda-feira, 9 de abril de 2007 10:00
> Para: oracle_br@yahoogrupos.com.br 
> Assunto: [oracle_br] Join
>
> Prezados, bom dia,
>
> Fazendo um join no oracle, não é aceito colocar o sinal (+) dos dois
> lados, exemplo:
>
> where
> a.campo (+) = b.campo (+)
>
> Então como fazemos essa consulta com outer join nas duas tabelas?
>
> Sds,
>
> Cristiano Mascarenhas da Silva
>
> --
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
> 3/4/2007 12:48
>
> --
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
> 3/4/2007 12:48
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



[oracle_br] OFF TOPIC - VAGA DBA ORACLE SR

2007-04-10 Por tôpico FERNANDES Marco A SOFTTEK
Repassando vaga !

ps: o Dorian vai me matar ! risos

> __ 
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On Behalf Of PUB: 
> Tatiana Folmom
> Sent: terça-feira, 10 de abril de 2007 10:18
> To:   [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject:  [titalentos] VAGA DBA ORACLE SR
> 
> 
>   Pessoal, Bom dia!
> A Softtek do Brasil é uma empresa multinacional que atua em mais de 10
> países. Somos uma empresa de Tecnologia da Informação que foi eleita por 
> cinco vezes consecutivas (2001, 2002, 2003, 2004 e 2005) como uma das 100 
> melhores empresas para se trabalhar pelo Guia Exame.
> No momento, estamos à procura do seguinte perfil:
> Cargo: DBA Oracle Senior
> Local de Trabalho: São Paulo, será treinado nos EUA durante 1 ou 2 meses 
> Inglês Fluente
> Imprescindível possuir VISTO para os EUA
> Obrigatório:
> 1) Modelagem lógica e física de banco de dados;
> 3) Domínio dos ítens abaixo no Oracle:
> Instalação, administração, manutenção e configuração de banco de dados
> Aplicação de patches
> Reorganização de bancos de dados
> Tuning de bancos de dados
> Trace de sessões e banco de dados
> 
> Remeter cv atualizado para: [EMAIL PROTECTED]
> 
> Att.
> 
> 
> >  <> 
> 


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



RES: [oracle_br] Join

2007-04-10 Por tôpico Fabio Santos
Qual a versão do oracle?
 
Se for 9i, pode fazer com full outer join. Se for 8i eh so nao colocar
nada no relacionamento
 
select t1.c1, t2.c1
from t1
full outer join t2
on t1.c1 = t2.c1;
 
ou
 
select t1.c1, t2.c1
from t1, t2;
 
 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Cristiano Mascarenhas da Silva
Enviada em: segunda-feira, 9 de abril de 2007 10:00
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Join



Prezados, bom dia,

Fazendo um join no oracle, não é aceito colocar o sinal (+) dos dois
lados, exemplo:

where
a.campo (+) = b.campo (+)

Então como fazemos essa consulta com outer join nas duas tabelas?

Sds,

Cristiano Mascarenhas da Silva



 


--
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48



-- 
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48
 


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



[oracle_br] Join

2007-04-10 Por tôpico Cristiano Mascarenhas da Silva
Prezados, bom dia,

Fazendo um join no oracle, não é aceito colocar o sinal (+) dos dois lados, 
exemplo:

where
  a.campo (+) = b.campo (+)

Então como fazemos essa consulta com outer join nas duas tabelas?

Sds,

Cristiano Mascarenhas da Silva




RES: [oracle_br] Enc: TOAD 8.x e Windows XP

2007-04-10 Por tôpico Fabio Santos
eu nao tenho esses problemas.
tenho o windows xp professional (SP1 e SP2) com oracle 9i. Já tive
várias versões dele.
 
abraços
 
 
 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Bia Fitzgerald
Enviada em: terça-feira, 10 de abril de 2007 16:47
Para: oracle_br
Assunto: [oracle_br] Enc: TOAD 8.x e Windows XP



Olá, 

Alguém já teve problemas com o TOAD 7x/8x/9x e o Windows XP? Eu já
formatei a máquina e ainda tenho problemas. Quando clico em alguma
tabela o TOAD fecha e não dá nenhuma mensagem de erro. :-o
Alguma idéia?
Obrigada,
Bia.

-_-_-_-_-__
Fale com seus amigos de graça com o novo Yahoo! Messenger 
HYPERLINK
"http://br.messenger.yahoo.com/"http://br.messenger-.yahoo.com/

-_-_-_-_-__
Fale com seus amigos de graça com o novo Yahoo! Messenger 
HYPERLINK
"http://br.messenger.yahoo.com/"http://br.messenger-.yahoo.com/ 

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



 


--
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48



-- 
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
3/4/2007 12:48
 


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



[oracle_br] Enc: TOAD 8.x e Windows XP

2007-04-10 Por tôpico Bia Fitzgerald
Olá, 
 
Alguém já teve problemas com o TOAD 7x/8x/9x e o Windows XP? Eu já formatei a 
máquina e ainda tenho problemas. Quando clico em alguma tabela o TOAD fecha e 
não dá nenhuma mensagem de erro. :-o
Alguma idéia?
Obrigada,
Bia.

__
Fale com seus amigos de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/

__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



RE: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - OFF TOPIC

2007-04-10 Por tôpico FERNANDES Marco A SOFTTEK
Fala Márcio, beleza ?
 
Vc já deve ter publicado isso aqui na lista mas como aproveitei
pra vasculhar seu blog eu achei essa preciosidade !!! risos
http://mportes.blogspot.com/2005/07/dba-de-peso.html
 
Muito bom ! Acho que muitos aqui vão gostar ! risos
Nada como encarar a vida de bom humor ! parabéns !
 
Valeu pela contribuição do clob ! matou a pau !
 
abraço,
Marco.


From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of PUB: 
Marcio Portes
Sent: terça-feira, 10 de abril de 2007 11:38
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - 
URGENTE



A curiosidade matou o gato.

Fiz o exemplo e postei no blog.
http://mportes.blogspot.com/2007/04/dbmslob-10g.html 
 

Funciona, mas é preciso abrir o arquivo com 'wb' senão ele continua
limitando em 32k.

On 4/10/07, jlchiappa <[EMAIL PROTECTED]  > 
wrote:
>
> Só complementando - agora, pensando mais friamente, acho que o
> put_raw vai funcionar sim : o limite existe MAS como o raw não
> adiciona nem procura por caracter eol, o cara vai poder ler a linha
> lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em
> http://www.oracle-base.com/articles/9i/ExportBlob9i.php 
>   , sim...
>
> []s
>
> Chiappa
> --- Em oracle_br@yahoogrupos.com.br   
> ,
> "jlchiappa" <[EMAIL PROTECTED]>
> escreveu
>
> >
> > Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo -
> e
> > na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling
> > de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que
> > nada mais é do que uma série de structs C com alguns programinhas
> que
> > os acessam, e sabendo que muitos desses caras foram limitados em 32
> > Kb - que é o valor máximo pra vários compiladores C em ambiente 32
> > bits - , eu já imaginava que devia ter esse limite Quanto à
> > utl_file.put_raw, não sei se funcionaria, já que a própria chamada
> > inicial obrigatória do utl_file.fopen tem o limite, é testar
> >
> > []s
> >
> > Chiappa
> > --- Em oracle_br@yahoogrupos.com.br  
> >  ,
> "Marcio Portes"
> >  escreveu
> > >
> > > Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
> > > Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra
> > dedeu.
> > > Outra possibilidade além de rotina externa, poderia ser gravar
> isso
> > em blob,
> > > usando o put_raw. (mas é chute, não testei...)
> > >
> > > On 4/10/07, jlchiappa  wrote:
> > > >
> > > > Márcio, ao que eu entendi o cara quer ler/gravar arquivo
> texto
> > com
> > > > linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> > > > limitação da própria UTL_FILE, o manual "Oracle(r) Database
> PL/SQL
> > > > Packages and Types Reference" no capítulo sobre a UTL_FILE já
> nos
> > diz
> > > > (grifo com *s meu) :
> > > >
> > > > "
> > > > UTL_FILEFOPEN Function
> > > > This function opens a file. You can specify the maximum line
> size
> > and
> > > > have a maximum of 50 files open simultaneously. See also
> > FOPEN_NCHAR
> > > > Function.
> > > >
> > > > Syntax
> > > >
> > > > UTL_FILE.FOPEN (
> > > > location IN VARCHAR2,
> > > > filename IN VARCHAR2,
> > > > open_mode IN VARCHAR2,
> > > > max_linesize IN BINARY_INTEGER)
> > > > RETURN file_type;
> > > >
> > > > Parameters
> > > >
> > > > ... blablabla ...
> > > >
> > > > max_linesize Maximum number of characters for each line,
> including
> > > > the newline character, for this file (minimum value 1, 
> > maximum
> > > > value 32767  ). If unspecified, Oracle supplies a default
> > value
> > > > of 1024.
> > > > "
> > > >
> > > > ===> então com utl_file essa (estranha!!) requisição de
> ler/gravar
> > > > arquivo com linhas maiores que isso não rola, extrapola o
> limite
> > da
> > > > utl_file - digo estranha porque muitas vezes nem editores de
> texto
> > > > especializados manipulam arquiivos com linhas to largas, é
> > > > incomum pra dizer o mínimo Pra essa necessidade então o
> colega
> > > > terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> > > > provavelmente) e a chamar do PL/SQL via external proc ou java
> > proc.
> > > >
> > > > []s
> > > >
> > > > Chiappa
> > > >
> > > > --- Em oracle_br@yahoogrupos.com.br 
> > > >   
> > > >  > 40yahoogrupos.com.br>,
> > > > "Marcio Portes"
> > > >  escreveu
> > > > >
> > > > > Já verificou como está na origem. Passando os olhos no seu
> > código,
> > > > não vejo
> > > > > nenhum problema.
> > > > > Voce usa o utl_file.put() que prepara a linha e não gera
> um "\n"
> > > > (new line).
> > > > > Mas nunca fiz um arquivo texto que tivesse mais de 32k no
> longo
> > da
> > > > linha,
> > > > > não sei se é permitido no sistema opernacional.
> > > > >
> > > > >
> > > > > 

[oracle_br] TOAD 8.x e Windows XP

2007-04-10 Por tôpico Bia Fitzgerald
Olá, 

Alguém já teve problemas com o TOAD 8/9 e o Windows XP? Eu já formatei a 
máquina e ainda tenho problemas. Quando clico em alguma tabela o TOAD fecha e 
não dá nenhuma mensagem de erro. :-o
Alguma idéia?
Obrigada,
Bia.

__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
A curiosidade matou o gato.

Fiz o exemplo e postei no blog.
http://mportes.blogspot.com/2007/04/dbmslob-10g.html

Funciona, mas é preciso abrir o arquivo com 'wb' senão ele continua
limitando em 32k.

On 4/10/07, jlchiappa <[EMAIL PROTECTED]> wrote:
>
>   Só complementando - agora, pensando mais friamente, acho que o
> put_raw vai funcionar sim : o limite existe MAS como o raw não
> adiciona nem procura por caracter eol, o cara vai poder ler a linha
> lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em
> http://www.oracle-base.com/articles/9i/ExportBlob9i.php , sim...
>
> []s
>
> Chiappa
> --- Em oracle_br@yahoogrupos.com.br ,
> "jlchiappa" <[EMAIL PROTECTED]>
> escreveu
>
> >
> > Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo -
> e
> > na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling
> > de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que
> > nada mais é do que uma série de structs C com alguns programinhas
> que
> > os acessam, e sabendo que muitos desses caras foram limitados em 32
> > Kb - que é o valor máximo pra vários compiladores C em ambiente 32
> > bits - , eu já imaginava que devia ter esse limite Quanto à
> > utl_file.put_raw, não sei se funcionaria, já que a própria chamada
> > inicial obrigatória do utl_file.fopen tem o limite, é testar
> >
> > []s
> >
> > Chiappa
> > --- Em oracle_br@yahoogrupos.com.br ,
> "Marcio Portes"
> >  escreveu
> > >
> > > Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
> > > Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra
> > dedeu.
> > > Outra possibilidade além de rotina externa, poderia ser gravar
> isso
> > em blob,
> > > usando o put_raw. (mas é chute, não testei...)
> > >
> > > On 4/10/07, jlchiappa  wrote:
> > > >
> > > > Márcio, ao que eu entendi o cara quer ler/gravar arquivo
> texto
> > com
> > > > linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> > > > limitação da própria UTL_FILE, o manual "Oracle(r) Database
> PL/SQL
> > > > Packages and Types Reference" no capítulo sobre a UTL_FILE já
> nos
> > diz
> > > > (grifo com *s meu) :
> > > >
> > > > "
> > > > UTL_FILEFOPEN Function
> > > > This function opens a file. You can specify the maximum line
> size
> > and
> > > > have a maximum of 50 files open simultaneously. See also
> > FOPEN_NCHAR
> > > > Function.
> > > >
> > > > Syntax
> > > >
> > > > UTL_FILE.FOPEN (
> > > > location IN VARCHAR2,
> > > > filename IN VARCHAR2,
> > > > open_mode IN VARCHAR2,
> > > > max_linesize IN BINARY_INTEGER)
> > > > RETURN file_type;
> > > >
> > > > Parameters
> > > >
> > > > ... blablabla ...
> > > >
> > > > max_linesize Maximum number of characters for each line,
> including
> > > > the newline character, for this file (minimum value 1, 
> > maximum
> > > > value 32767  ). If unspecified, Oracle supplies a default
> > value
> > > > of 1024.
> > > > "
> > > >
> > > > ===> então com utl_file essa (estranha!!) requisição de
> ler/gravar
> > > > arquivo com linhas maiores que isso não rola, extrapola o
> limite
> > da
> > > > utl_file - digo estranha porque muitas vezes nem editores de
> texto
> > > > especializados manipulam arquiivos com linhas to largas, é
> > > > incomum pra dizer o mínimo Pra essa necessidade então o
> colega
> > > > terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> > > > provavelmente) e a chamar do PL/SQL via external proc ou java
> > proc.
> > > >
> > > > []s
> > > >
> > > > Chiappa
> > > >
> > > > --- Em oracle_br@yahoogrupos.com.br 
> > > >  > 40yahoogrupos.com.br>,
> > > > "Marcio Portes"
> > > >  escreveu
> > > > >
> > > > > Já verificou como está na origem. Passando os olhos no seu
> > código,
> > > > não vejo
> > > > > nenhum problema.
> > > > > Voce usa o utl_file.put() que prepara a linha e não gera
> um "\n"
> > > > (new line).
> > > > > Mas nunca fiz um arquivo texto que tivesse mais de 32k no
> longo
> > da
> > > > linha,
> > > > > não sei se é permitido no sistema opernacional.
> > > > >
> > > > >
> > > > > On 4/10/07, a_coelho59  wrote:
> > > > > >
> > > > > > Marcio, agora tenho outro problema:
> > > > > > O ficheiro está completo mas, parte a linha quando atinge
> > 32767
> > > > > > bytes e coloca o ficheiro xml mal estruturado, conforme o
> > exemplo.
> > > > > >
> > > > > > 
> > > > > >  > > > > > mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> > > > > > 1
> > > > > > 31.15
> > > > > > 62.3
> > > > > > 62.3
> > > > > > 
> > > > > > 
> > > > > >
> > > > > > Quem puder agradeço
> > > > > >
> > > > > > --- Em 
> > > > > > oracle_br@yahoogrupos.com.br > 40yahoogrupos.com.br> > > > 40yahoogrupos.com.br>,
> > > >
> > > > > > "Marcio Portes"
> > > > > >  escreveu
> > > > > > >
> > > > > > > Voce está dentro de um looping e sabe quem está te
> jogando
> > fora
> > > > não?
> > > > > > > Quando voce usa o dbms_lob.read, na última passagem ele
> > joga o
> > > > > > no_data_found
> > > > > > > e manda o ponteiro pra fora do looping. Faltou n

RES: [oracle_br] Erro ORA-01578 e ORA-01110

2007-04-10 Por tôpico Gerson Luz - Dpto. TI
 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Ivan
Enviada em: segunda-feira, 9 de abril de 2007 16:25
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Erro ORA-01578 e ORA-01110



Gerson,

O problema é difícil diagnosticar assim... pode ser problema de escrita
(dados escritos incorretamente), de leitura (os dados estão ok, mas por
algum motivo estão sendo lidos de maneira incorreta), pode ser os dois...
estes problemas podem estar relacionados com problema físico (disco bixado,
controladora com problemas) ou lógico (driver com bug, SO, bug do próprio
Oracle...) ou até problemas com memória. 

Sugiro iniciar o diagnostico pelo teu hardware, passar algum software de
verificação. Certificar-se de que todos os firmware estão atualizados, todos
os drivers, pesquisar no metalink sobre algum bug conhecido entre versão de
SO e versão de Oracle...

Neste ponto você deve encontrar e solucionar o problema, aí é partir para
uma verificação nos teus arquivos e corrigi-los: DBV, DBMS_REPAIR e por aí
vai...

Se o arquivo estiver realmente corrompido, não há como recuperar este dado,
ou você tem um backup, ou é "esconder" estes blocos corrompidos com o
DBMS_REPAIR, criar uma nova tablespace copiando o que der para ela e apagar
a corrompida.

Boa sorte
Ivan

> -Mensagem original-
> De: [EMAIL PROTECTED]  os.com.br
[mailto:[EMAIL PROTECTED] 
os.com.br]
> Em nome de Gerson Luz - Dpto. TI
> Enviada em: segunda-feira, 9 de abril de 2007 15:18
> Para: [EMAIL PROTECTED] 
os.com.br
> Assunto: [oracle_br] Erro ORA-01578 e ORA-01110
> 
> Desculpa, esqueci
> 
> Oracle 9I, Red Hat 3 AS 32 BITS
> 
> Boa tarde
> 
> Ao alguns registros no banco, tenho estes erros:
> ORA-01578:ORACLE data block corrupted(file#6, block #57628)
> ORA-01110:data file 6:'/4disco/banco/siga/dados/TS_MP8_DATA_04.dbf'
> A principio parece ser em tabelas que possuo campo memo.
> É algum problema de hardware? tem como recuperar isto?
> 
> 
> Gerson Luz
> Departamento de T.I.
> +55 (44) 3261-8052
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 



 

__ NOD32 2137 (20070322) Information __

This message was checked by NOD32 antivirus system.
http://www.eset.com





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



RES: [oracle_br] Re: Erro ORA-01578 e ORA-01110

2007-04-10 Por tôpico Gerson Luz - Dpto. TI
Realmente quando ao campo Memo, como é visto no ERP, é armazenado como
Long Raw, e foi somente coincidência, pois aconteceu com outros registros
também, exportei a tabela que e importei em outra base que tenho como teste
e o problema nao aconteceu, o caminho será realmente checagem do hardware.
 
 
Obrigado Ivan e Chiappa
 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: terça-feira, 10 de abril de 2007 10:01
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Erro ORA-01578 e ORA-01110



vamos por partes aqui Gerson :

a) "campo memo" ** não existe em absoluto ** no bd Oracle, o que 
existe são LONGs e LOBs, imagino que é a um desses que vc se refere. 
No caso penso que é coincidência o fato da corrupção ter surgido numa 
tablespace que armazena tabelas com LONGs/LOBs, já que desconheço 
algum bug que cause corrupção do tipo ao se usar LONGs/LOBs, e 
internamente um bloco que armazena LONGs/LOBs é formatado IGUALZINHo 
a um bloco que armazena outras coisas, não vejo em que o fato dum 
bloco conter LONGs/LOBs o torne mais ou menos vulnerável à 
corrupção. Vc (óbvio) vai checar SIM no Suporte Oracle E no 
Suporte do Aplicativo (e no Suporte dos fornecedores de middleware, 
tal como a m$ se odbc por exemplo é usado) por bugs, mas não creio 
que tenha alta probabilidade, não

b) "É algum problema de hardware" ? Muito ALTAS chances de ser sim, o 
bd Oracle é ** muito ** seguro, é um software EXTREMAMENTE estável 
por si só (as extensões dele infelizmente não, mas o banco em si é 
sim), então quando se vê corrupção do tipo a primeira coisa que se 
pensa é pau no hardware Lembro só que esse "hardware" aí pode ser 
muita coisa - memória, placa-mãe, controladoras de disco, cabos, 
discos, hardware de storage, TUDO isso se estiver com pau pode 
corromper um bloco Oracle A memória é um ponto que o pessoal 
SEMPRE esquece, mas é óbvio - por definição TUDO que é lido/gravado 
no disco em algum momento vai ou esteve na RAM (ie, num dos caches do 
bd ou do SO), logicamente se vc tiver com pau de hardware na tua RAM, 
a corrupção é inevitável Então NÂO TEM JEITO, vc VAI TER QUE 
fazer uma checagem PROFUNDA e COMPLETA no teu hardware, como um 
todo Óbvio, ** NÂO ** é suficiente só rodar um fschkzinho da 
vida, exige-se uma checagem MAIS DETALHADA que isso, se vc não tiver 
os softwares e a expertise necessários, chame uma empresa de 
confiança pra isso

c) pode ser não-hardware (ie, software) ? Lógico que pode, 
tranquilamente DRIVERS com bug, SO com bug, podem sim levar a isto, 
checar com os fornecedores por patches

d) como recuperar : claro, SE vc não fizer b) e c) acima, MUITO 
provavelmente a toda hora vc vai ter corrupção, então FAÇA-OS ANTES 
DE MAIS NADA. Uma vez hardware e software checado e probs resolvidos, 
a recuperação em si será : SE o bloco corrompido conter uma 
informação que possa ser refeita (exemplo, um índice) vc o refaz, se 
não vc volta o seu backup, é isso em resumo. Caso o bloco corrompido 
contenha uma informação que possa ser descartada ou depois re-
inserida de outra fonte, vc tem a opção de simplesmente marcar o 
bloco como inusável (pra não receber mais o erro) via package 
DBMS_REPAIR, cheque nos manuais de Admin pela sintaxe e detalhes.

[]s

Chiappa

--- Em [EMAIL PROTECTED] 
os.com.br, "Gerson Luz - Dpto. TI" 
<[EMAIL PROTECTED]> escreveu
>
> 
> Boa tarde
> 
> Ao alguns registros no banco, tenho estes erros:
> ORA-01578:ORACLE data block corrupted(file#6, block #57628)
> ORA-01110:data file 6:'/4disco/banco/siga/dados/TS_MP8_DATA_04.dbf'
> A principio parece ser em tabelas que possuo campo memo.
> É algum problema de hardware? tem como recuperar isto?
> 
> 
> 
> 
> Gerson Luz
> Departamento de T.I.
> +55 (44) 3261-8052 
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>



 

__ NOD32 2137 (20070322) Information __

This message was checked by NOD32 antivirus system.
http://www.eset.com





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



[oracle_br] Re: Erro ORA-01578 e ORA-01110

2007-04-10 Por tôpico jlchiappa
vamos por partes aqui Gerson :

a) "campo memo" ** não existe em absoluto ** no bd Oracle, o que 
existe são LONGs e LOBs, imagino que é a um desses que vc se refere. 
No caso penso que é coincidência o fato da corrupção ter surgido numa 
tablespace que armazena tabelas com LONGs/LOBs, já que desconheço 
algum bug que cause corrupção do tipo ao se usar LONGs/LOBs, e 
internamente um bloco que armazena LONGs/LOBs é formatado IGUALZINHo 
a um bloco que armazena outras coisas, não vejo em que o fato dum 
bloco conter LONGs/LOBs o torne mais ou menos vulnerável à 
corrupção. Vc (óbvio) vai checar SIM no Suporte Oracle E no 
Suporte do Aplicativo (e no Suporte dos fornecedores de middleware, 
tal como a m$ se odbc por exemplo é usado) por bugs, mas não creio 
que tenha alta probabilidade, não

b) "É algum problema de hardware" ? Muito ALTAS chances de ser sim, o 
bd Oracle é ** muito ** seguro, é um software EXTREMAMENTE estável 
por si só (as extensões dele infelizmente não, mas o banco em si é 
sim), então quando se vê corrupção do tipo a primeira coisa que se 
pensa é pau no hardware Lembro só que esse "hardware" aí pode ser 
muita coisa - memória, placa-mãe, controladoras de disco, cabos, 
discos, hardware de storage, TUDO isso se estiver com pau pode 
corromper um bloco Oracle A memória é um ponto que o pessoal 
SEMPRE esquece, mas é óbvio - por definição TUDO que é lido/gravado 
no disco em algum momento vai ou esteve na RAM (ie, num dos caches do 
bd ou do SO), logicamente se vc tiver com pau de hardware na tua RAM, 
a corrupção é inevitável Então NÂO TEM JEITO, vc VAI TER QUE 
fazer uma checagem PROFUNDA e COMPLETA no teu hardware, como um 
todo Óbvio, ** NÂO ** é suficiente só rodar um fschkzinho da 
vida, exige-se uma checagem MAIS DETALHADA que isso, se vc não tiver 
os softwares e a expertise necessários, chame uma empresa de 
confiança pra isso

c) pode ser não-hardware (ie, software) ? Lógico que pode, 
tranquilamente DRIVERS com bug, SO com bug, podem sim levar a isto, 
checar com os fornecedores por patches

d) como recuperar : claro, SE vc não fizer b) e c) acima, MUITO 
provavelmente a toda hora vc vai ter corrupção, então FAÇA-OS ANTES 
DE MAIS NADA. Uma vez hardware e software checado e probs resolvidos, 
a recuperação em si será : SE o bloco corrompido conter uma 
informação que possa ser refeita (exemplo, um índice) vc o refaz, se 
não vc volta o seu backup, é isso em resumo. Caso o bloco corrompido 
contenha uma informação que possa ser descartada ou depois re-
inserida de outra fonte, vc tem a opção de simplesmente marcar o 
bloco como inusável (pra não receber mais o erro) via package 
DBMS_REPAIR, cheque nos manuais de Admin pela sintaxe e detalhes.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "Gerson Luz - Dpto. TI" 
<[EMAIL PROTECTED]> escreveu
>
>  
> Boa tarde
>  
> Ao alguns registros no banco, tenho estes erros:
> ORA-01578:ORACLE data block corrupted(file#6, block #57628)
> ORA-01110:data file 6:'/4disco/banco/siga/dados/TS_MP8_DATA_04.dbf'
> A principio parece ser em tabelas que possuo campo memo.
> É algum problema de hardware? tem como recuperar isto?
>  
> 
> 
> 
>Gerson Luz
> Departamento de T.I.
> +55 (44) 3261-8052
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico jlchiappa
Só complementando - agora, pensando mais friamente, acho que o 
put_raw vai funcionar sim : o limite existe MAS como o raw não 
adiciona nem procura por caracter eol, o cara vai poder ler a linha 
lá grandona MAS em vários pedaços de 32767 bytes, como mostrado em 
http://www.oracle-base.com/articles/9i/ExportBlob9i.php , sim...

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> 
escreveu
>
> Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo - 
e 
> na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling 
> de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que 
> nada mais é do que uma série de structs C com alguns programinhas 
que 
> os acessam, e sabendo que muitos desses caras foram limitados em 32 
> Kb - que é o valor máximo pra vários compiladores C em ambiente 32 
> bits - , eu já imaginava que devia ter esse limite  Quanto à 
> utl_file.put_raw, não sei se funcionaria, já que a própria chamada 
> inicial obrigatória do utl_file.fopen tem o limite, é testar
> 
> []s
> 
>  Chiappa
> --- Em oracle_br@yahoogrupos.com.br, "Marcio Portes" 
>  escreveu
> >
> > Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
> > Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra 
> dedeu.
> > Outra possibilidade além de rotina externa, poderia ser gravar 
isso 
> em blob,
> > usando o put_raw. (mas é chute, não testei...)
> > 
> > On 4/10/07, jlchiappa  wrote:
> > >
> > >   Márcio, ao que eu entendi o cara quer ler/gravar arquivo 
texto 
> com
> > > linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> > > limitação da própria UTL_FILE, o manual "Oracle(r) Database 
PL/SQL
> > > Packages and Types Reference" no capítulo sobre a UTL_FILE já 
nos 
> diz
> > > (grifo com *s meu) :
> > >
> > > "
> > > UTL_FILEFOPEN Function
> > > This function opens a file. You can specify the maximum line 
size 
> and
> > > have a maximum of 50 files open simultaneously. See also 
> FOPEN_NCHAR
> > > Function.
> > >
> > > Syntax
> > >
> > > UTL_FILE.FOPEN (
> > > location IN VARCHAR2,
> > > filename IN VARCHAR2,
> > > open_mode IN VARCHAR2,
> > > max_linesize IN BINARY_INTEGER)
> > > RETURN file_type;
> > >
> > > Parameters
> > >
> > > ... blablabla ...
> > >
> > > max_linesize Maximum number of characters for each line, 
including
> > > the newline character, for this file (minimum value 1,  
> maximum
> > > value 32767  ). If unspecified, Oracle supplies a default 
> value
> > > of 1024.
> > > "
> > >
> > > ===> então com utl_file essa (estranha!!) requisição de 
ler/gravar
> > > arquivo com linhas maiores que isso não rola, extrapola o 
limite 
> da
> > > utl_file - digo estranha porque muitas vezes nem editores de 
texto
> > > especializados manipulam arquiivos com linhas to largas, é
> > > incomum pra dizer o mínimo Pra essa necessidade então o 
colega
> > > terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> > > provavelmente) e a chamar do PL/SQL via external proc ou java 
> proc.
> > >
> > > []s
> > >
> > > Chiappa
> > >
> > > --- Em oracle_br@yahoogrupos.com.br  40yahoogrupos.com.br>,
> > > "Marcio Portes"
> > >  escreveu
> > > >
> > > > Já verificou como está na origem. Passando os olhos no seu 
> código,
> > > não vejo
> > > > nenhum problema.
> > > > Voce usa o utl_file.put() que prepara a linha e não gera 
um "\n"
> > > (new line).
> > > > Mas nunca fiz um arquivo texto que tivesse mais de 32k no 
longo 
> da
> > > linha,
> > > > não sei se é permitido no sistema opernacional.
> > > >
> > > >
> > > > On 4/10/07, a_coelho59  wrote:
> > > > >
> > > > > Marcio, agora tenho outro problema:
> > > > > O ficheiro está completo mas, parte a linha quando atinge 
> 32767
> > > > > bytes e coloca o ficheiro xml mal estruturado, conforme o 
> exemplo.
> > > > >
> > > > > 
> > > > >  > > > > mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> > > > > 1
> > > > > 31.15
> > > > > 62.3
> > > > > 62.3
> > > > > 
> > > > > 
> > > > >
> > > > > Quem puder agradeço
> > > > >
> > > > > --- Em oracle_br@yahoogrupos.com.br  40yahoogrupos.com.br> > > 40yahoogrupos.com.br>,
> > >
> > > > > "Marcio Portes"
> > > > >  escreveu
> > > > > >
> > > > > > Voce está dentro de um looping e sabe quem está te 
jogando 
> fora
> > > não?
> > > > > > Quando voce usa o dbms_lob.read, na última passagem ele 
> joga o
> > > > > no_data_found
> > > > > > e manda o ponteiro pra fora do looping. Faltou na sua 
> lógica o
> > > > > tratamento do
> > > > > > no_data_found para gravar o resto.
> > > > > >
> > > > > > Acho que um bom inicio seria:
> > > > > >
> > > > > > ...
> > > > > > EXCEPTION
> > > > > > when no_data_found then
> > > > > > utl_file.put(v_file, v_buffer);
> > > > > > utl_file.fflush( v_file );
> > > > > > utl_fclose( v_file );
> > > > > > END ENVIA_XML;
> > > > > >
> > > > > > Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> > > > > > Quando tiver um tempo, dá uma lidinho em
> > > > > > http://mportes.blogspo

[oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico jlchiappa
Pois é, é byte pra dedéu, é um pedido incomum pra dizer o mínimo - e 
na verdade eu só fui nas docs pra confirmar, eu já tinha um feeling 
de que isso seria limitação (conhecendo o nosso amigo PL/SQL, que 
nada mais é do que uma série de structs C com alguns programinhas que 
os acessam, e sabendo que muitos desses caras foram limitados em 32 
Kb - que é o valor máximo pra vários compiladores C em ambiente 32 
bits - , eu já imaginava que devia ter esse limite  Quanto à 
utl_file.put_raw, não sei se funcionaria, já que a própria chamada 
inicial obrigatória do utl_file.fopen tem o limite, é testar

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "Marcio Portes" 
<[EMAIL PROTECTED]> escreveu
>
> Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
> Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra 
dedeu.
> Outra possibilidade além de rotina externa, poderia ser gravar isso 
em blob,
> usando o put_raw. (mas é chute, não testei...)
> 
> On 4/10/07, jlchiappa <[EMAIL PROTECTED]> wrote:
> >
> >   Márcio, ao que eu entendi o cara quer ler/gravar arquivo texto 
com
> > linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> > limitação da própria UTL_FILE, o manual "Oracle(r) Database PL/SQL
> > Packages and Types Reference" no capítulo sobre a UTL_FILE já nos 
diz
> > (grifo com *s meu) :
> >
> > "
> > UTL_FILEFOPEN Function
> > This function opens a file. You can specify the maximum line size 
and
> > have a maximum of 50 files open simultaneously. See also 
FOPEN_NCHAR
> > Function.
> >
> > Syntax
> >
> > UTL_FILE.FOPEN (
> > location IN VARCHAR2,
> > filename IN VARCHAR2,
> > open_mode IN VARCHAR2,
> > max_linesize IN BINARY_INTEGER)
> > RETURN file_type;
> >
> > Parameters
> >
> > ... blablabla ...
> >
> > max_linesize Maximum number of characters for each line, including
> > the newline character, for this file (minimum value 1,  
maximum
> > value 32767  ). If unspecified, Oracle supplies a default 
value
> > of 1024.
> > "
> >
> > ===> então com utl_file essa (estranha!!) requisição de ler/gravar
> > arquivo com linhas maiores que isso não rola, extrapola o limite 
da
> > utl_file - digo estranha porque muitas vezes nem editores de texto
> > especializados manipulam arquiivos com linhas to largas, é
> > incomum pra dizer o mínimo Pra essa necessidade então o colega
> > terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> > provavelmente) e a chamar do PL/SQL via external proc ou java 
proc.
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br ,
> > "Marcio Portes"
> >  escreveu
> > >
> > > Já verificou como está na origem. Passando os olhos no seu 
código,
> > não vejo
> > > nenhum problema.
> > > Voce usa o utl_file.put() que prepara a linha e não gera um "\n"
> > (new line).
> > > Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo 
da
> > linha,
> > > não sei se é permitido no sistema opernacional.
> > >
> > >
> > > On 4/10/07, a_coelho59  wrote:
> > > >
> > > > Marcio, agora tenho outro problema:
> > > > O ficheiro está completo mas, parte a linha quando atinge 
32767
> > > > bytes e coloca o ficheiro xml mal estruturado, conforme o 
exemplo.
> > > >
> > > > 
> > > >  > > > mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> > > > 1
> > > > 31.15
> > > > 62.3
> > > > 62.3
> > > > 
> > > > 
> > > >
> > > > Quem puder agradeço
> > > >
> > > > --- Em oracle_br@yahoogrupos.com.br  > 40yahoogrupos.com.br>,
> >
> > > > "Marcio Portes"
> > > >  escreveu
> > > > >
> > > > > Voce está dentro de um looping e sabe quem está te jogando 
fora
> > não?
> > > > > Quando voce usa o dbms_lob.read, na última passagem ele 
joga o
> > > > no_data_found
> > > > > e manda o ponteiro pra fora do looping. Faltou na sua 
lógica o
> > > > tratamento do
> > > > > no_data_found para gravar o resto.
> > > > >
> > > > > Acho que um bom inicio seria:
> > > > >
> > > > > ...
> > > > > EXCEPTION
> > > > > when no_data_found then
> > > > > utl_file.put(v_file, v_buffer);
> > > > > utl_file.fflush( v_file );
> > > > > utl_fclose( v_file );
> > > > > END ENVIA_XML;
> > > > >
> > > > > Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> > > > > Quando tiver um tempo, dá uma lidinho em
> > > > > http://mportes.blogspot.com/2005/07/boas-prticas-de-
programao-
> > when-
> > > > others.html
> > > > >
> > > > >
> > > > > On 4/9/07, a_coelho59  wrote:
> > > > > >
> > > > > > Caros amigos;
> > > > > > Se me puderem ajudar agradeço.
> > > > > > Tenho uma Clob com mais 32767 caracteres.
> > > > > > Tenho este procedure para gerar um file.
> > > > > > Mas não sei como fazer o output da clob com todos os
> > caracteres
> > > > para
> > > > > > o file.
> > > > > > O procedimento é este, se alguem me puder ajudar agradeço:
> > > > > >
> > > > > > PROCEDURE ENVIA_XML IS
> > > > > > V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
> > > > > > V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> > > > > > V_FILE UTL_FILE.FILE_TYPE ;
> > > > > > V_CLOB CLOB ;

Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
Pra ser sincero, nem fui lá nos docs. ;-) Obrigado.
Nunca precisei ir tão longe com a linha, ou seja, 32k é byte pra dedeu.
Outra possibilidade além de rotina externa, poderia ser gravar isso em blob,
usando o put_raw. (mas é chute, não testei...)

On 4/10/07, jlchiappa <[EMAIL PROTECTED]> wrote:
>
>   Márcio, ao que eu entendi o cara quer ler/gravar arquivo texto com
> linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é
> limitação da própria UTL_FILE, o manual "Oracle(r) Database PL/SQL
> Packages and Types Reference" no capítulo sobre a UTL_FILE já nos diz
> (grifo com *s meu) :
>
> "
> UTL_FILEFOPEN Function
> This function opens a file. You can specify the maximum line size and
> have a maximum of 50 files open simultaneously. See also FOPEN_NCHAR
> Function.
>
> Syntax
>
> UTL_FILE.FOPEN (
> location IN VARCHAR2,
> filename IN VARCHAR2,
> open_mode IN VARCHAR2,
> max_linesize IN BINARY_INTEGER)
> RETURN file_type;
>
> Parameters
>
> ... blablabla ...
>
> max_linesize Maximum number of characters for each line, including
> the newline character, for this file (minimum value 1,  maximum
> value 32767  ). If unspecified, Oracle supplies a default value
> of 1024.
> "
>
> ===> então com utl_file essa (estranha!!) requisição de ler/gravar
> arquivo com linhas maiores que isso não rola, extrapola o limite da
> utl_file - digo estranha porque muitas vezes nem editores de texto
> especializados manipulam arquiivos com linhas to largas, é
> incomum pra dizer o mínimo Pra essa necessidade então o colega
> terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java,
> provavelmente) e a chamar do PL/SQL via external proc ou java proc.
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br ,
> "Marcio Portes"
> <[EMAIL PROTECTED]> escreveu
> >
> > Já verificou como está na origem. Passando os olhos no seu código,
> não vejo
> > nenhum problema.
> > Voce usa o utl_file.put() que prepara a linha e não gera um "\n"
> (new line).
> > Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo da
> linha,
> > não sei se é permitido no sistema opernacional.
> >
> >
> > On 4/10/07, a_coelho59 <[EMAIL PROTECTED]> wrote:
> > >
> > > Marcio, agora tenho outro problema:
> > > O ficheiro está completo mas, parte a linha quando atinge 32767
> > > bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.
> > >
> > > 
> > >  > > mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> > > 1
> > > 31.15
> > > 62.3
> > > 62.3
> > > 
> > > 
> > >
> > > Quem puder agradeço
> > >
> > > --- Em oracle_br@yahoogrupos.com.br 
> > >  40yahoogrupos.com.br>,
>
> > > "Marcio Portes"
> > >  escreveu
> > > >
> > > > Voce está dentro de um looping e sabe quem está te jogando fora
> não?
> > > > Quando voce usa o dbms_lob.read, na última passagem ele joga o
> > > no_data_found
> > > > e manda o ponteiro pra fora do looping. Faltou na sua lógica o
> > > tratamento do
> > > > no_data_found para gravar o resto.
> > > >
> > > > Acho que um bom inicio seria:
> > > >
> > > > ...
> > > > EXCEPTION
> > > > when no_data_found then
> > > > utl_file.put(v_file, v_buffer);
> > > > utl_file.fflush( v_file );
> > > > utl_fclose( v_file );
> > > > END ENVIA_XML;
> > > >
> > > > Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> > > > Quando tiver um tempo, dá uma lidinho em
> > > > http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-
> when-
> > > others.html
> > > >
> > > >
> > > > On 4/9/07, a_coelho59  wrote:
> > > > >
> > > > > Caros amigos;
> > > > > Se me puderem ajudar agradeço.
> > > > > Tenho uma Clob com mais 32767 caracteres.
> > > > > Tenho este procedure para gerar um file.
> > > > > Mas não sei como fazer o output da clob com todos os
> caracteres
> > > para
> > > > > o file.
> > > > > O procedimento é este, se alguem me puder ajudar agradeço:
> > > > >
> > > > > PROCEDURE ENVIA_XML IS
> > > > > V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
> > > > > V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> > > > > V_FILE UTL_FILE.FILE_TYPE ;
> > > > > V_CLOB CLOB ;
> > > > > V_BUFFER_SIZE VARCHAR2(32767) ;
> > > > > V_BUFFER VARCHAR2(32767) ;
> > > > > V_AMOUNT BINARY_INTEGER := 32767 ;
> > > > > V_POS INTEGER := 1 ;
> > > > > BEGIN
> > > > >
> > > > > SELECT p.lin.getClobVal()
> > > > > INTO V_CLOB
> > > > > FROM PC_PQ_LIN_XML1 p
> > > > > WHERE p.sqfile = 1 ;
> > > > >
> > > > > V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
> > > > > LOOP
> > > > > DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
> > > > > UTL_FILE.put(V_FILE, V_BUFFER);
> > > > > V_POS := V_POS + V_AMOUNT;
> > > > > END LOOP;
> > > > > EXCEPTION WHEN OTHERS THEN
> > > > > DBMS_OUTPUT.put_line(SQLERRM);
> > > > > UTL_FILE.fclose(V_FILE);
> > > > > END ENVIA_XML;
> > > > >
> > > > > Obrigado
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Marcio Portes
> > > > Material Tecnico em Portugues - http://mportes.blogspot.com
> > > > Practical Learning Oracle -
> > > > http://mportes.blogsp

[oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico jlchiappa
Márcio, ao que eu entendi o cara quer ler/gravar arquivo texto com 
linhas maiores que 32767 bytes,né ? Aí não é limitação de SO, é 
limitação da própria UTL_FILE, o manual "Oracle® Database PL/SQL 
Packages and Types Reference" no capítulo sobre a UTL_FILE já nos diz 
(grifo com *s meu) :

"
UTL_FILEFOPEN Function
This function opens a file. You can specify the maximum line size and 
have a maximum of 50 files open simultaneously. See also FOPEN_NCHAR 
Function.

Syntax

UTL_FILE.FOPEN (
   location IN VARCHAR2,
   filename IN VARCHAR2,
   open_modeIN VARCHAR2,
   max_linesize IN BINARY_INTEGER) 
  RETURN file_type;

Parameters

... blablabla ...

max_linesize Maximum number of characters for each line, including 
the newline character, for this file (minimum value 1,  maximum 
value 32767  ). If unspecified, Oracle supplies a default value 
of 1024. 
"

===> então com utl_file essa (estranha!!) requisição de ler/gravar 
arquivo com linhas maiores que isso não rola, extrapola o limite da 
utl_file - digo estranha porque muitas vezes nem editores de texto 
especializados manipulam arquiivos com linhas to largas, é 
incomum pra dizer o mínimo Pra essa necessidade então o colega 
terá que escrever uma rotina EXTERNA ao PL/SQL (em C ou Java, 
provavelmente) e a chamar do PL/SQL via external proc ou java proc.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "Marcio Portes" 
<[EMAIL PROTECTED]> escreveu
>
> Já verificou como está na origem. Passando os olhos no seu código, 
não vejo
> nenhum problema.
> Voce usa o utl_file.put() que prepara a linha e não gera um "\n" 
(new line).
> Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo da 
linha,
> não sei se é permitido no sistema opernacional.
> 
> 
> On 4/10/07, a_coelho59 <[EMAIL PROTECTED]> wrote:
> >
> >   Marcio, agora tenho outro problema:
> > O ficheiro está completo mas, parte a linha quando atinge 32767
> > bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.
> >
> > 
> >  > mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> > 1
> > 31.15
> > 62.3
> > 62.3
> > 
> > 
> >
> > Quem puder agradeço
> >
> > --- Em oracle_br@yahoogrupos.com.br ,
> > "Marcio Portes"
> >  escreveu
> > >
> > > Voce está dentro de um looping e sabe quem está te jogando fora 
não?
> > > Quando voce usa o dbms_lob.read, na última passagem ele joga o
> > no_data_found
> > > e manda o ponteiro pra fora do looping. Faltou na sua lógica o
> > tratamento do
> > > no_data_found para gravar o resto.
> > >
> > > Acho que um bom inicio seria:
> > >
> > > ...
> > > EXCEPTION
> > > when no_data_found then
> > > utl_file.put(v_file, v_buffer);
> > > utl_file.fflush( v_file );
> > > utl_fclose( v_file );
> > > END ENVIA_XML;
> > >
> > > Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> > > Quando tiver um tempo, dá uma lidinho em
> > > http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-
when-
> > others.html
> > >
> > >
> > > On 4/9/07, a_coelho59  wrote:
> > > >
> > > > Caros amigos;
> > > > Se me puderem ajudar agradeço.
> > > > Tenho uma Clob com mais 32767 caracteres.
> > > > Tenho este procedure para gerar um file.
> > > > Mas não sei como fazer o output da clob com todos os 
caracteres
> > para
> > > > o file.
> > > > O procedimento é este, se alguem me puder ajudar agradeço:
> > > >
> > > > PROCEDURE ENVIA_XML IS
> > > > V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
> > > > V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> > > > V_FILE UTL_FILE.FILE_TYPE ;
> > > > V_CLOB CLOB ;
> > > > V_BUFFER_SIZE VARCHAR2(32767) ;
> > > > V_BUFFER VARCHAR2(32767) ;
> > > > V_AMOUNT BINARY_INTEGER := 32767 ;
> > > > V_POS INTEGER := 1 ;
> > > > BEGIN
> > > >
> > > > SELECT p.lin.getClobVal()
> > > > INTO V_CLOB
> > > > FROM PC_PQ_LIN_XML1 p
> > > > WHERE p.sqfile = 1 ;
> > > >
> > > > V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
> > > > LOOP
> > > > DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
> > > > UTL_FILE.put(V_FILE, V_BUFFER);
> > > > V_POS := V_POS + V_AMOUNT;
> > > > END LOOP;
> > > > EXCEPTION WHEN OTHERS THEN
> > > > DBMS_OUTPUT.put_line(SQLERRM);
> > > > UTL_FILE.fclose(V_FILE);
> > > > END ENVIA_XML;
> > > >
> > > > Obrigado
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Marcio Portes
> > > Material Tecnico em Portugues - http://mportes.blogspot.com
> > > Practical Learning Oracle -
> > > http://mportes.blogspot.com/2006/02/practical-learning-
oracle.html
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram 
removidas]
> > >
> >
> >  
> >
> 
> 
> 
> -- 
> Marcio Portes
> Material Tecnico em Portugues - http://mportes.blogspot.com
> Practical Learning Oracle -
> http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




Re: [oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico Marcio Portes
Já verificou como está na origem. Passando os olhos no seu código, não vejo
nenhum problema.
Voce usa o utl_file.put() que prepara a linha e não gera um "\n" (new line).
Mas nunca fiz um arquivo texto que tivesse mais de 32k no longo da linha,
não sei se é permitido no sistema opernacional.


On 4/10/07, a_coelho59 <[EMAIL PROTECTED]> wrote:
>
>   Marcio, agora tenho outro problema:
> O ficheiro está completo mas, parte a linha quando atinge 32767
> bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.
>
> 
>  mber="139427" FranchiseName="OPEL" IsFranchise="false"/>
> 1
> 31.15
> 62.3
> 62.3
> 
> 
>
> Quem puder agradeço
>
> --- Em oracle_br@yahoogrupos.com.br ,
> "Marcio Portes"
> <[EMAIL PROTECTED]> escreveu
> >
> > Voce está dentro de um looping e sabe quem está te jogando fora não?
> > Quando voce usa o dbms_lob.read, na última passagem ele joga o
> no_data_found
> > e manda o ponteiro pra fora do looping. Faltou na sua lógica o
> tratamento do
> > no_data_found para gravar o resto.
> >
> > Acho que um bom inicio seria:
> >
> > ...
> > EXCEPTION
> > when no_data_found then
> > utl_file.put(v_file, v_buffer);
> > utl_file.fflush( v_file );
> > utl_fclose( v_file );
> > END ENVIA_XML;
> >
> > Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> > Quando tiver um tempo, dá uma lidinho em
> > http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-
> others.html
> >
> >
> > On 4/9/07, a_coelho59 <[EMAIL PROTECTED]> wrote:
> > >
> > > Caros amigos;
> > > Se me puderem ajudar agradeço.
> > > Tenho uma Clob com mais 32767 caracteres.
> > > Tenho este procedure para gerar um file.
> > > Mas não sei como fazer o output da clob com todos os caracteres
> para
> > > o file.
> > > O procedimento é este, se alguem me puder ajudar agradeço:
> > >
> > > PROCEDURE ENVIA_XML IS
> > > V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
> > > V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> > > V_FILE UTL_FILE.FILE_TYPE ;
> > > V_CLOB CLOB ;
> > > V_BUFFER_SIZE VARCHAR2(32767) ;
> > > V_BUFFER VARCHAR2(32767) ;
> > > V_AMOUNT BINARY_INTEGER := 32767 ;
> > > V_POS INTEGER := 1 ;
> > > BEGIN
> > >
> > > SELECT p.lin.getClobVal()
> > > INTO V_CLOB
> > > FROM PC_PQ_LIN_XML1 p
> > > WHERE p.sqfile = 1 ;
> > >
> > > V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
> > > LOOP
> > > DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
> > > UTL_FILE.put(V_FILE, V_BUFFER);
> > > V_POS := V_POS + V_AMOUNT;
> > > END LOOP;
> > > EXCEPTION WHEN OTHERS THEN
> > > DBMS_OUTPUT.put_line(SQLERRM);
> > > UTL_FILE.fclose(V_FILE);
> > > END ENVIA_XML;
> > >
> > > Obrigado
> > >
> > >
> > >
> >
> >
> >
> > --
> > Marcio Portes
> > Material Tecnico em Portugues - http://mportes.blogspot.com
> > Practical Learning Oracle -
> > http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>



-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


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



[oracle_br] Re: Envio de uma clob com + de 32767 caracteres - URGENTE

2007-04-10 Por tôpico a_coelho59
Marcio, agora tenho outro problema:
O ficheiro está completo mas, parte a linha quando atinge 32767   
bytes e coloca o ficheiro xml mal estruturado, conforme o exemplo.



1
31.15
62.3
62.3

   

Quem puder agradeço


--- Em oracle_br@yahoogrupos.com.br, "Marcio Portes" 
<[EMAIL PROTECTED]> escreveu
>
> Voce está dentro de um looping e sabe quem está te jogando fora não?
> Quando voce usa o dbms_lob.read, na última passagem ele joga o 
no_data_found
> e manda o ponteiro pra fora do looping. Faltou na sua lógica o 
tratamento do
> no_data_found para gravar o resto.
> 
> Acho que um bom inicio seria:
> 
> ...
> EXCEPTION
>   when no_data_found then
> utl_file.put(v_file, v_buffer);
> utl_file.fflush( v_file );
> utl_fclose( v_file );
> END ENVIA_XML;
> 
> Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
> Quando tiver um tempo, dá uma lidinho em
> http://mportes.blogspot.com/2005/07/boas-prticas-de-programao-when-
others.html
> 
> 
> On 4/9/07, a_coelho59 <[EMAIL PROTECTED]> wrote:
> >
> >   Caros amigos;
> > Se me puderem ajudar agradeço.
> > Tenho uma Clob com mais 32767 caracteres.
> > Tenho este procedure para gerar um file.
> > Mas não sei como fazer o output da clob com todos os caracteres 
para
> > o file.
> > O procedimento é este, se alguem me puder ajudar agradeço:
> >
> > PROCEDURE ENVIA_XML IS
> > V_DIR VARCHAR2(7) := 'http://aplfms:/dload';
> > V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> > V_FILE UTL_FILE.FILE_TYPE ;
> > V_CLOB CLOB ;
> > V_BUFFER_SIZE VARCHAR2(32767) ;
> > V_BUFFER VARCHAR2(32767) ;
> > V_AMOUNT BINARY_INTEGER := 32767 ;
> > V_POS INTEGER := 1 ;
> > BEGIN
> >
> > SELECT p.lin.getClobVal()
> > INTO V_CLOB
> > FROM PC_PQ_LIN_XML1 p
> > WHERE p.sqfile = 1 ;
> >
> > V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
> > LOOP
> > DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
> > UTL_FILE.put(V_FILE, V_BUFFER);
> > V_POS := V_POS + V_AMOUNT;
> > END LOOP;
> > EXCEPTION WHEN OTHERS THEN
> > DBMS_OUTPUT.put_line(SQLERRM);
> > UTL_FILE.fclose(V_FILE);
> > END ENVIA_XML;
> >
> > Obrigado
> >
> >  
> >
> 
> 
> 
> -- 
> Marcio Portes
> Material Tecnico em Portugues - http://mportes.blogspot.com
> Practical Learning Oracle -
> http://mportes.blogspot.com/2006/02/practical-learning-oracle.html
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




RE: [oracle_br] Envio de uma clob com + de 32767 caracteres

2007-04-10 Por tôpico Alcino Coelho
Obrigado Marcio e um bom dia de trabalho….

 

Alcino Coelho

Santogal SGPS

Av 5 de Outubro 35 4 andar

1050-047 Lisboa

Tel: 210 430 028

email :   [EMAIL PROTECTED]

   

  _  

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Marcio Portes
Sent: terça-feira, 10 de Abril de 2007 4:34
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Envio de uma clob com + de 32767 caracteres

 

Voce está dentro de um looping e sabe quem está te jogando fora não?
Quando voce usa o dbms_lob.read, na última passagem ele joga o no_data_found
e manda o ponteiro pra fora do looping. Faltou na sua lógica o tratamento do
no_data_found para gravar o resto.

Acho que um bom inicio seria:

...
EXCEPTION
when no_data_found then
utl_file.put(v_file, v_buffer);
utl_file.fflush( v_file );
utl_fclose( v_file );
END ENVIA_XML;

Eu tirei o WHEN OTHERS de propósito... evite usá-lo.
Quando tiver um tempo, dá uma lidinho em
http://mportes.
 blogspot.com/2005/07/boas-prticas-de-programao-when-others.html

On 4/9/07, a_coelho59 <[EMAIL PROTECTED]  pt>
wrote:
>
> Caros amigos;
> Se me puderem ajudar agradeço.
> Tenho uma Clob com mais 32767 caracteres.
> Tenho este procedure para gerar um file.
> Mas não sei como fazer o output da clob com todos os caracteres para
> o file.
> O procedimento é este, se alguem me puder ajudar agradeço:
>
> PROCEDURE ENVIA_XML IS
> V_DIR VARCHAR2(7) := 'http://aplfms: 
/dload';
> V_NOME VARCHAR2(15) := 'VD_PECAS_PQ.xml';
> V_FILE UTL_FILE.FILE_TYPE ;
> V_CLOB CLOB ;
> V_BUFFER_SIZE VARCHAR2(32767) ;
> V_BUFFER VARCHAR2(32767) ;
> V_AMOUNT BINARY_INTEGER := 32767 ;
> V_POS INTEGER := 1 ;
> BEGIN
>
> SELECT p.lin.getClobVal()
> INTO V_CLOB
> FROM PC_PQ_LIN_XML1 p
> WHERE p.sqfile = 1 ;
>
> V_FILE := UTL_FILE.fopen(V_DIR, V_NOME , 'W', V_BUFFER_SIZE);
> LOOP
> DBMS_LOB.READ(V_CLOB, V_AMOUNT, V_POS, V_BUFFER);
> UTL_FILE.put(V_FILE, V_BUFFER);
> V_POS := V_POS + V_AMOUNT;
> END LOOP;
> EXCEPTION WHEN OTHERS THEN
> DBMS_OUTPUT.put_line(SQLERRM);
> UTL_FILE.fclose(V_FILE);
> END ENVIA_XML;
>
> Obrigado
>
> 
>

-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.
 blogspot.com
Practical Learning Oracle -
http://mportes.

blogspot.com/2006/02/practical-learning-oracle.html

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

 



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