[oracle_br] Re: Sqlloader

2008-04-12 Thread jlchiappa
O sql*loader é um programa executável externo, assim como qquer outro
programa executável pode ser executado a partir dum stored PL/SQL com
as seguintes técnicas :

- criando-se um programa daemon (ou mesmo shell script) que receba o
texto do comando a executar (via pipes ou va pooling em
arquivo-texto), em qquer versão do banco

e/ou

- via exteral procedure ou java, se banco 8i ou 9i

e/ou

- via scheduler, se banco 10g

pesquise em http://asktom.oracle.com por cada uma das técinas, que vc
acha diversos exemplos. E claro, lembro também que vc ** NÃO ** mais
precisa necessariamente executar o sql*loader pra carregar/ler
arquivos texto desde a versõ 9i do banco, pois passou a existir a
figura da EXTERNAL TABLE, que com ela vc lê e carrega dados de um
arquivo-texto SEM ter que chamr o executável do loader, pense nela
como uma versão melhorada e nativa do loader... 

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "francisco porfirio"
<[EMAIL PROTECTED]> escreveu
>
> Pessoa,
> 
> Alguem sabe se existe alguma forma de chamar a execução do sqlloader via
> PL/SQL?
> 
> 
> -- 
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: Sqlloader

2008-04-12 Thread jlchiappa
Sim, o que torna o sql*loader tão rápido é a possibilidade de inserir
os dados com DIRECT=Y (ie, em APPEND-MODE), gerando apenas um mínimo
de redo e undo, E a possibilidade de paralelismo (tanto na busca dos
dados quanto no INSERT, ambas vc pode obter com as external tables,
fazendo ALTER SESSION ENABLE PARALLEL DML e INSERT /*+ APPEND
PARALLEL(T, degreedesejado) */ INTO tabelareal (select * from
externaltable T), e é claro desabilitando índices na tabela real, se
preciso desabilitando o PGA automático e setando manualmente
sort_area_size e hash_area_size pro máximo (dando assim mais recursos
pra sessão que faz a carga)

[]s

 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "francisco porfirio"
<[EMAIL PROTECTED]> escreveu
>
> Ok Chiappa obrigado.
> 
> Só mais uma dúvida, o EXTERNAL TABLE é tão rápido quanto o sqlloader
para
> realziar carregamento de dados em massa?
> 
> -- 
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: Sqlloader

2008-04-12 Thread jlchiappa
Não um substituto, mas uma outra opção para se fazer o mesmo : o que
ocorre é quemuita coisa que é built-in no loader, ativado bvia param
apenas  (como Parelelismos, controle de COMMITs/transação, carga de
binários, etc, etc) na EXTERNAL TABLE exige uma pequena programação
(cfrme mostrei em msg anterior), no loader não, mas de modo geral o
que um faz o outro faz, e SIM, já comparei, se corretamente
programada/usada a external table possui performance via de regra
muito muito semelhante ao loader na maioria dos casos...

[]s
 
 Chiappa
--- Em oracle_br@yahoogrupos.com.br, "Ivan Ricardo Schuster"
<[EMAIL PROTECTED]> escreveu
>
> Chiappa,
> 
> voce considera external table como um substituto do loader?
> Voce ja comparou a performance dos dois?
> 
> 2008/4/12 jlchiappa <[EMAIL PROTECTED]>:
> > O sql*loader é um programa executável externo, assim como qquer outro
> > programa executável pode ser executado a partir dum stored PL/SQL com
> > as seguintes técnicas :
> >
> > - criando-se um programa daemon (ou mesmo shell script) que receba o
> > texto do comando a executar (via pipes ou va pooling em
> > arquivo-texto), em qquer versão do banco
> >
> > e/ou
> >
> > - via exteral procedure ou java, se banco 8i ou 9i
> >
> > e/ou
> >
> > - via scheduler, se banco 10g
> >
> > pesquise em http://asktom.oracle.com por cada uma das técinas, que vc
> > acha diversos exemplos. E claro, lembro também que vc ** NÃO ** mais
> > precisa necessariamente executar o sql*loader pra carregar/ler
> > arquivos texto desde a versõ 9i do banco, pois passou a existir a
> > figura da EXTERNAL TABLE, que com ela vc lê e carrega dados de um
> > arquivo-texto SEM ter que chamr o executável do loader, pense nela
> > como uma versão melhorada e nativa do loader...
> >
> > []s
> >
> >  Chiappa
> > --- Em oracle_br@yahoogrupos.com.br, "francisco porfirio"
> >  escreveu
> >
> > >
> > > Pessoa,
> > >
> > > Alguem sabe se existe alguma forma de chamar a execução do
sqlloader via
> > > PL/SQL?
> > >
> > >
> > > --
> > > Atenciosamente
> > > Francisco Porfirio Ribeiro Neto
> > >
> > >
> > > [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/
> >
--
> > >Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
> >

Links do Yahoo! Grupos
> >
> >
> >
>




[oracle_br] Re: Sqlloader

2008-04-14 Thread ja_ura
Além dessas opções, você tem também o UTL_FILE, que pode ser utilizado
dentro de um pl/sql para carregar esses arquivos textos.


Adriano

--- Em oracle_br@yahoogrupos.com.br, "francisco porfirio"
<[EMAIL PROTECTED]> escreveu
>
> Essa minha dúvida surgiu, porque eu pensei em realizar uma procedure
que eu
> apenas informasse o arquivo que seria carregado, e a procedure ficaria
> encarregada em chamar operações do sqlloader.
> 
> Sendo assim, acredito que com um script shell dentro da pl/sql funciona.
> 
> Ireie realizar alguns testes ainda com o EXTERNAL TABLE, conforme
citado por
> Chiappa.
> 
> Agradeço a resposta de todos.
> 
> 
> -- 
> Atenciosamente
> Francisco Porfirio Ribeiro Neto
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: Sqlloader

2006-03-08 Thread jlchiappa
Deixe-me entender : na tabela o campo está definido como NUMBER e vc 
o define como CHAR no control file, é isso ? Se sim, de repente pode 
estar vindo um espacinho em branco, uma vírgula ou ponto diferente do 
formato numérico padrão (que é o que vc usa quando pede conversão 
implícita , vc faz isso especificando char por number), deve ser prob 
do tipo. Faz o seguinte : manda um CREATE TABLE dessa tabela e umas 
poucas linhas desse arquivo que deram erro, que a gente pode tentar 
reproduzir...

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Manoel" <[EMAIL PROTECTED]> 
escreveu
>
> Ola!!
> Estou fazendo uma carga de dados e gero um spool de um banco para 
> carga em outro:
> 
> SPOOL boger_sist_obs.txt 
>  
>  
> SELECT   
> ASSISTENTE  ,
> CENTRAL_TECNOLOGIA  ,
> COD_ENCERRAMENTO  ,  
> D_CRIACAO,   
> D_ENCERRAMENTO,  
> D_ENTRADA,   
> ID_AREA ,
> ID_BOLETIM , 
> ID_BX_CAUSA ,
> ID_LOCALIDADE ,  
> ID_RESULTADO_EXAME , 
> TERMINAL_NUMERO ,
> 1,   
> ID   
> FROM  sir.Boletim PARTITION (FEV2006_27_05)  
> where TO_CHAR(D_CRIACAO,'DD-MM-')='02-03-2006';  
> exit 
> 
> porem as colunas abaixo de ID_AREA nao sao carrregas elas são 
> numericas :
> arquivo de carga:
> 
> sqlldr bo/[EMAIL PROTECTED] control=boger_carga_sist.ctl 
> data=boger_sist_obs.txt log=boger_carga_sist_obs.log 
> bad=boger_carga_sist_obs.b
> ad discard=boger_carga_sist_obs.dsc errors=  DIRECT = 
> 
TRUE  
> 
> arquivo de ctl:
> 
> OPTIONS (BINDSIZE=1800, ROWS=5000, 
> ERRORS=5000)  
> load 
> 
data  
>   
> 
infile 'boger_sist_obs.txt'   
>
> 
append
>
> into  table 
> 
TB_BOLETIM_GER_AUX   
> FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"' trailing 
> nullcols
> (ASSISTENTE  CHAR(15)TERMINATED 
> BY ';'  ,
> CENTRAL_TECNOLOGIA CHAR(75)  TERMINATED 
> BY ';' , 
> COD_ENCERRAMENTO CHAR(6)TERMINATED 
> BY ';'  , 
> D_CRIACAO  
> DATE  ,   
> D_ENCERRAMENTO  
> DATE ,   
> D_ENTRADA  
> DATE ,
> ID_AREA CHAR(30)  TERMINATED 
> BY ';', 
> ID_BOLETIM CHAR(30)  TERMINATED 
> BY ';'  ,
> ID_BX_CAUSA CHAR(30)  TERMINATED 
> BY ';' ,
> ID_LOCALIDADE CHAR(30)  TERMINATED 
> BY ';'  , 
> ID_RESULTADO_EXAME CHAR(30)  TERMINATED 
> BY ';'  ,
> TERMINAL_NUMERO CHAR(16) TERMINATED 
> BY ';' , 
> QTDE  CHAR(10)  TERMINATED 
> BY ';'  , 
> ID  CHAR
> 
(30) )
>
>
> Alguem já teve esse tipo de problema ?
> 
> Grato,
>






--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL 

Re: [oracle_br] Re: Sqlloader

2008-04-12 Thread Ivan Ricardo Schuster
Chiappa,

voce considera external table como um substituto do loader?
Voce ja comparou a performance dos dois?

2008/4/12 jlchiappa <[EMAIL PROTECTED]>:
> O sql*loader é um programa executável externo, assim como qquer outro
> programa executável pode ser executado a partir dum stored PL/SQL com
> as seguintes técnicas :
>
> - criando-se um programa daemon (ou mesmo shell script) que receba o
> texto do comando a executar (via pipes ou va pooling em
> arquivo-texto), em qquer versão do banco
>
> e/ou
>
> - via exteral procedure ou java, se banco 8i ou 9i
>
> e/ou
>
> - via scheduler, se banco 10g
>
> pesquise em http://asktom.oracle.com por cada uma das técinas, que vc
> acha diversos exemplos. E claro, lembro também que vc ** NÃO ** mais
> precisa necessariamente executar o sql*loader pra carregar/ler
> arquivos texto desde a versõ 9i do banco, pois passou a existir a
> figura da EXTERNAL TABLE, que com ela vc lê e carrega dados de um
> arquivo-texto SEM ter que chamr o executável do loader, pense nela
> como uma versão melhorada e nativa do loader...
>
> []s
>
>  Chiappa
> --- Em oracle_br@yahoogrupos.com.br, "francisco porfirio"
> <[EMAIL PROTECTED]> escreveu
>
> >
> > Pessoa,
> >
> > Alguem sabe se existe alguma forma de chamar a execução do sqlloader via
> > PL/SQL?
> >
> >
> > --
> > Atenciosamente
> > Francisco Porfirio Ribeiro Neto
> >
> >
> > [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/
> --
> >Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU 
> >PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
> 
>  Links do Yahoo! Grupos
>
>
>


Re: [oracle_br] Re: Sqlloader

2008-04-12 Thread francisco porfirio
Ok Chiappa obrigado.

Só mais uma dúvida, o EXTERNAL TABLE é tão rápido quanto o sqlloader para
realziar carregamento de dados em massa?

-- 
Atenciosamente
Francisco Porfirio Ribeiro Neto


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



Re: [oracle_br] Re: Sqlloader

2008-04-12 Thread francisco porfirio
Essa minha dúvida surgiu, porque eu pensei em realizar uma procedure que eu
apenas informasse o arquivo que seria carregado, e a procedure ficaria
encarregada em chamar operações do sqlloader.

Sendo assim, acredito que com um script shell dentro da pl/sql funciona.

Ireie realizar alguns testes ainda com o EXTERNAL TABLE, conforme citado por
Chiappa.

Agradeço a resposta de todos.


-- 
Atenciosamente
Francisco Porfirio Ribeiro Neto


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



Re: [oracle_br] Re: Sqlloader

2006-03-08 Thread Manoel Marcos da Silva
  --
  -- TB_BOLETIM_GER_AUX (Table) 
  --
  CREATE TABLE TB_BOLETIM_GER_AUX
  (
  ASSISTENTE VARCHAR2(7),
  CENTRAL_TECNOLOGIA VARCHAR2(10),
  COD_ENCERRAMENTO VARCHAR2(6),
  D_CRIACAO DATE,
  D_ENCERRAMENTO DATE,
  D_ENTRADA DATE,
  ID_AREA NUMBER,
  ID_BOLETIM NUMBER,
  ID_BX_CAUSA NUMBER,
  ID_LOCALIDADE NUMBER,
  ID_RESULTADO_EXAME NUMBER,
  TERMINAL_NUMERO VARCHAR2(8),
  QTDE NUMBER,
  ID VARCHAR2(15)
  )
  TABLESPACE USERS
  PCTUSED 40
  PCTFREE 10
  INITRANS 1
  MAXTRANS 255
  STORAGE (
  INITIAL 10K
  NEXT 10K
  MINEXTENTS 1
  MAXEXTENTS 121
  PCTINCREASE 50
  FREELISTS 1
  FREELIST GROUPS 1
  BUFFER_POOL DEFAULT
  )
  LOGGING 
  NOCACHE
  NOPARALLEL;
   
   
  037038 ;PR-TRP RA ;0261A7;02-MAR-06; ; ; 603; 220823981; 2; 6360; 
  15;34240270; 1;BDA-10069130 
  
  
  
  
  
  
  
  
  
  
  ;AL-S12 ; ;02-MAR-06;07-MAR-06;02-MAR-06; 6373; 220821756; ; 6245; 
  ;46992540; 1;OSS-09084030 
  
  
  
  
  
  
  
  
  
  
  ;ER-AXE T ; ;02-MAR-06;07-MAR-06;02-MAR-06; 1273; 220821759; ; 645; 
  ;47185904; 1;OSW-12676421 
  
  
  
  
  
  
  
  
  
  
  ;AL-S12 ; ;02-MAR-06;07-MAR-06;02-MAR-06; 26641; 220819537; ; 5966; 
  ;39283284; 1;OSW-12671811 
  
  
  
  
  
  
  
  
  
  
  ;EQ-EWSD ; ;02-MAR-06;07-MAR-06;02-MAR-06; 6317; 220822720; ; 475; 
  ;46581038; 1;OSS-09085404 
  
  
  
  
  
  
  
  
  
  
  ;EQ-EWSD ; ;02-MAR-06;07-MAR-06;02-MAR-06; 6317; 220822724; ; 475; 
  ;46581038; 1;OSS-09085405 
  
  
   
  Quando copio esses dados pro email perde a formatação mas todos estao 
alinhados a direita menos as datas 
  e   ASSISTENTE ,  CENTRAL_TECNOLOGIA  . O ultimo campo ID tem um caracter 
especial exemplo = OSS-09085405 
   
  Obrigado chiappa pela atençao ,
  

jlchiappa <[EMAIL PROTECTED]> escreveu:
  Deixe-me entender : na tabela o campo está definido como NUMBER e vc 
o define como CHAR no control file, é isso ? Se sim, de repente pode 
estar vindo um espacinho em branco, uma vírgula ou ponto diferente do 
formato numérico padrão (que é o que vc usa quando pede conversão 
implícita , vc faz isso especificando char por number), deve ser prob 
do tipo. Faz o seguinte : manda um CREATE TABLE dessa tabela e umas 
poucas linhas desse arquivo que deram erro, que a gente pode tentar 
reproduzir...

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Manoel" <[EMAIL PROTECTED]> 
escreveu
>
> Ola!!
> Estou fazendo uma carga de dados e gero um spool de um banco para 
> carga em outro:
> 
> SPOOL boger_sist_obs.txt 
>  
>  
> SELECT   
> ASSISTENTE  ,
> CENTRAL_TECNOLOGIA  ,
> COD_ENCERRAMENTO  ,  
> D_CRIACAO,   
> D_ENCERRAMENTO,  
> D_ENTRADA,   
> ID_AREA ,
> ID_BOLETIM , 
> ID_BX_CAUSA ,
> ID_LOCALIDADE ,  
> ID_RESULTADO_EXAME , 
> TERMINAL_NUMERO ,
> 1,   
> ID   
> FROM  sir.Boletim PARTITION (FEV2006_27_05)  
> where TO_CHAR(D_CRIACAO,'DD-MM-')='02-03-2006';  
> exit 
> 
> porem as colunas abaixo de ID_AREA nao sao carrregas elas são 
> numericas :
> arquivo de carga:
> 
> sqlldr bo/[EMAIL PROTECTED] control=boger_carga_sist.ctl 
> data=boger_sist_obs.txt log=boger_carga_sist_obs.log 
> bad=boger_carga_sist_obs.b
> ad discard=boger_carga_sist_obs.dsc errors=  DIRECT = 
> 
TRUE  
> 
> arquivo de ctl:
> 
> OPTIONS (BINDSIZE=1800, ROWS=5000, 
> ERRORS=5000)  
> load 
> 
data  
>   
> 
infile 'boger_sist_obs.txt'   
>
> 
append
>
> into  table 
> 
TB_BOLETIM_GER_AUX   
> FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"' trailing 
> nullcols
> (ASSISTENTE  CHAR(15)TERMINATED 
> BY ';'  ,
> CENTRAL_TECNOLOGIA CHAR(75)  TERMINATED 
> BY ';' , 
> COD_ENCERRAMENTO CHAR(6)TERMINATED 
> BY ';'  , 
> D_CRIACAO  
> DATE  ,   
> D_ENCERRAMENTO

[oracle_br] Re: Sqlloader e triggers

2008-10-02 Thread pedrojosemanso
Obrigado, 

André e Maria,

Achei pelo Metalink esta informação abaixo e estou começando a ler.
Com acho que pode ser útil para outros, estou disponibilizando.

Atenciosamente,

 Pedro.

--

Direct Loads, Integrity Constraints, and Triggers
-
With the conventional path load method, arrays of rows are inserted
with standard SQL INSERT
statements--integrity constraints and insert triggers are
automatically applied. But when you l
oad
data with the direct path, SQL*Loader disables some integrity
constraints and all database
triggers. This section discusses the implications of using direct path
loads with respect to these
features.

Integrity Constraints
-
During a direct path load, some integrity constraints are
automatically disabled. Others are not.
For a description of the constraints, see the information on
maintaining data integrity in the
Oracle9i Application Developer's Guide - Fundamentals.

Enabled Constraints
---
The constraints that remain in force are:

NOT NULL
UNIQUE
PRIMARY KEY (unique-constraints on not-null columns)
NOT NULL constraints are checked at column array build time. Any row
that viol
ates the NOT NULL
constraint is rejected.

UNIQUE constraints are verified when indexes are rebuilt at the end of
the load. The index will be
left in an Index Unusable state if a violation of a UNIQUE constraint
is detected.
See Indexes
Left in an Unusable State.

Disabled Constraints

During a direct path load, the following constraints are automatically
disabled by default:

CHECK constraints
Referential constraints (FOREIGN KEY)
You can override the disabling of CHECK constraints by specifying the
EVALUATE_CHECK_CONSTRAINTS
clause. SQL*Loader will then evaluate CHECK constraints during a
direct path load. Any row that
violates the CHECK constraint is rejected.

...

Database Insert Triggers

Table insert triggers are also disabled when a direct path load
begins. After the rows are loaded
and indexes rebuilt, any triggers that were disabled are automatically
reenabled. The log file
lists all triggers that were disabled for the load. There should not
be any errors reen
abling
triggers.

Unlike integrity constraints, insert triggers are not reapplied to the
whole table when they are
enabled. As a result, insert triggers do not fire for any rows loaded
on the direct path. When
using the direct path, the application must ensure that any behavior
associated with inser
t
triggers is carried out for the new rows.

Replacing Insert Triggers with Integrity Constraints

Applications commonly use insert triggers to implement integrity
constraints. Most of these
application insert triggers are simple enough that they can be
replaced with Oracle's automatic
integrity constraints.

When Automatic Constraints Cannot Be Used
-
Sometimes an insert trigger cannot be replaced with Oracle's automatic
integrity constraints. For
example, if an integrity check is implemented with a table lookup in
an insert trigger, then
automatic check constraints cannot be used, because the automatic
constraints can only reference
constants and columns in the current row. This section describes two
methods for duplicat
ing the
effects of such a trigger.

Preparation
---
Before either method can be used, the table must be prepared. Use the
following
general guidelines
to prepare the table:

Before the load, add a 1-byte or 1-character column to the table that
marks rows as "old data" or
"new data."
Let the value of null for this column signify "old data," because null
columns do not take up space.
When loading, flag all loaded rows as "new data" with SQL*Loader's
CONSTANT parameter.
After following this procedure, all newly loaded rows are identified,
making it possible to
operate on the new data without affecting the old rows.

Using an Update Trigger
---
Generally, you can use a database update trigger to duplicate the
effects of an insert trigger.
This method is the simplest. It can be used whenever the insert
trigger does not raise any
exceptions.

Create an update trigger that duplicates the effects of the insert
trigger.

Copy the trigger. Change all occurrences of "new.column_name" to
"old.column_name".

Replace the current update trigger, if it exists, with the new one.
Update the table, changing the "new data" flag to null, thereby firing
the update trigger.
Restore the original update trigger, if there was one.
Depending on the behavior of the trigger, it may be necessary to have
exclusive update access to
the table during this operation, so that other users do not
inadvertently apply the trigger to
rows they modify.





--


--- Em oracle_br@yahoogrupos.com.b

[oracle_br] Re: SQLLoader para importar, e o que para exportar?

2005-08-04 Thread jlchiappa
Sim, spool via sql*plus é a alternativa default : quanto á 
performance, na verdade , 500 mil linhas é café pequeno num banco 
Oracle ** decente **, otimizado, com um hardware de servidor (** não 
sendo ** portanto o PCzinho com discos IDE ;), usando o sql*plus 
CORRETAMENTE (ie, conexão LOCAL, SEM perder tempo exibindo a 
informação na tela do plus), etc...
 Segue meu teste na máquina de desenvolvimento :


SQL> select count(*) from usu.TAB_SIS_REC_INE;

  COUNT(*)
--
   1368807


sid=srv_dev:srv_dev:/home/oracle>cat teste_spool.sql

set term off feedback off verify off pages 0 lines 500 trimspool on 
head off
spool sai.txt
select TICKET_RETORNO_RECH_ID, FECHA_LLAMADA, NOMBRE_ARCHIVO from 
usu.TAB_SIS_REC_INE;
spool off
exit

sid=srv_dev:srv_dev:/home/oracle>date
Thu Aug  4 10:29:12 BRA 2005

sid=srv_dev:srv_dev:/home/oracle>nohup sqlplus usu/usu 
@teste_spool.sql &
[1] 5077
sid=srv_dev:srv_dev:/home/oracle>Sending output to nohup.out

sid=srv_dev:srv_dev:/home/oracle>ls -ltr



-rw-r-   1 oracle dba194 Jul 20 14:53 2.sql
-rw-r-   1 oracle dba194 Aug  4 10:28 
teste_spool.sql
-rw---   1 oracle dba439 Aug  4 10:30 nohup.out
-rw-r--r--   1 oracle dba104032413 Aug  4 10:30 sai.txt

sid=srv_dev:srv_dev:/home/oracle>wc -l sai.txt
1368807 sai.txt

Ou seja, alguns minutos pra descarregar mais de um milhão, serve ?? 
Tudo bem que a máquina estava "parada", o pessoal não está no momento 
testando nada grande, e é uma máquina boa (4 CPUs, com discos 
RAID0+1), e que o SELECT aqui usado é simples, tá, mas mesmo assim 
500 mil linhas o absolutamente NÂO É caso pra demorar mais que uns 20 
minutos, e isso se a máquina estiver em produção pesada, acho eu. 
Mais que isso, vc TEM problemas aí, acho eu...

==>> LOGICAMENTE, o plus tem limitações (entre elas os fatos que só 
pode gravar um arquivo por vez, que não é uma aplicação multi-
thread), então se vc esbarrar nessas limitações aí vc deve escrever 
uma rotina pra isso, o programa pro*c mostrado em 
http://asktom.oracle.com/pls/ask/f?
p=4950:8:F4950_P8_DISPLAYID:459020243348 é um bom início, eu já o 
usei com sucesso também, C quase sempre tem mesmo uma performance 
muito boa em I/O.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, Maurício Bertolucci 
<[EMAIL PROTECTED]> escreveu
> Senhores, bom dia,
> 
> Em uma maquina client Oracle 9i, eu tenho o recurso SQL Loader 
para "subir" um arquivo texto muito rapidamente para o banco, agora 
qual o recurso disponivel que eu tenho para fazer o contrario, quero 
gerar um arquivo texto no client... somente o spool do sqlplus??? Ele 
eh muito lento naum...? A tabela que quero "exportar" possui media de 
500 mil linhas..
> 
> Alguma ideia?
> 
> Muito Obrigado,
> 
> Mauricio
> 
> [As partes desta mensagem que não continham texto foram removidas]





__

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
__ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html