Muito Obrigado Mestre Chiappa!! 
Sou grande admirador seu ja tem um tempo. Estou começando no oracle. 
Ja havia lido outro artigo seu sobre as tabelas externas.. só o que 
ocorre: Os arquivos .txt sao gerados sequencialmente com nomes 
distintos!! Desta forma nao tem como utilizar a GTT. Nao sei se 
conseguiremos alterar a aplicaçao para receber estes arquivos. De 
inicio estou tentando achar uma forma de criar um type fora da proc 
e passar apenas uma ( variavel := array ) como parametro da proc.

Obrigado.







--- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> 
escreveu
>
> Ah, só outro detalhe : se vc não for usar a opção de external e 
ficar
> com a arquitetura atual, EVIDENTEMENTE, arays consomem RAM, tem
> limites práticos, pra grande volume é INSUPERÁVEL a opção de se ter
> uma GLOBAL TEMPORARY TABLE sendo preenchida pelo tal oci e fazer
> INSERT appends , merges e quetais nas tabelas reais com select from
> GTT - pra isso basta que a tal oci conecte em modo dedicado (sem 
pool)
> e mantenha a conexão, isso é tranquilo numa rotina de carga, 
imagino eu.
> 
> []s
> 
>  Chiappa
> --- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <jlchiappa@> 
escreveu
> >
> > Bom, respondendo à sua pergunta, pra começo de conversa vc não 
diz a
> > versao de banco, mas desde a 8i um stored PL/SQL pode receber 
como
> > parâmetro qquer datatype SQL, inclusive definidos pelo usuário  
** e
> > ** o PL/SQL desde essa versão aceita coleções desses datatypes,
> > tranquilamente vc poderia ter um datatype record com o seu 
formato de
> > registro E ter uma table of desse cara,
> >
> http://asktom.oracle.com/pls/asktom/f?
p=100:11:0::::P11_QUESTION_ID:208012348074#4448954729709
> > tem exemplo e discussão a respeito.
> >  Noto porém que SE a sua for uma versão de banco com Suporte 
(ie, 9i e
> > acima), vc NÃO NECESSARIAMENTE precisaria dessa rotina extra, vc
> > tranquilamente poderia ter uma external table e fazer o 
INSERT/UPDATE
> > (ou até mesmo o novo comando MERGE!!) lendo *** diretamente *** 
do
> > arquivo texto - essa opção do 9i de fazer SELECT dum arquivo-
texto
> > (external table) nunca deixa de me surpreender em performance, 
se vc
> > não a considerou recomendo experimentar, seria algo tipo :
> > 
> > BEGIN
> >    loop
> >      if dbms_applicaton_info.get_client_info.. = 'STOP' then
> >         exit;
> >      end if;
> >      procquebuscanomedearq; -- pode ser external function , 
java, etc
> >      alter table externaltable nnn; -- mudar nome do arq  a ler
> >      insert /*+ APPEND */ into tabelareal 
> >       (select * from externaltableapontandoproarquivo);
> >       -- ou MERGE, se quiser
> >     end loop;
> > END;
> > 
> > 
> > []s
> > 
> >  Chiappa
> > --- Em oracle_br@yahoogrupos.com.br, "Asley" <mineiro_foa@> 
escreveu
> > >
> > > Pessoal, alguem pode me ajudar?!
> > > 
> > > Recebo um arquivo .txt que atraves de uma OCI (c++) é 
carregada p/ 
> > > oracle  - De 1 em 1 segundo esta OCI recebe um arquivo .txt
> > > Depois de carregado os dados, temos uma proc para que faz um 
insert 
> > > e update para outras tabelas!!
> > > 
> > >  O problema é, em vez de passar apenas uma linha na proc 
passar já 
> > > várias linhas!! Do jeito q está a proc perde muito tempo 
executando 
> > > apenas uma linha qdo é executada!! 
> > > 
> > > 
> > > CREATE OR REPLACE procedure insere_daf (  pcodigodaf       
> > > historicodaf.codigodaf%type, 
> > > pdatasistema     number, 
> > > pdatagps         number, 
> > > pdataequipamento number, 
> > > pvelocidade      historicodaf.velocidade%type, 
> > > pproa            historicodaf.proa%type, 
> > > ptiporesposta    historicodaf.tiporesposta%type, 
> > > pestado          historicodaf.estado%type, 
> > > pcodigoobjeto    historicodaf.codigoobjeto%type, 
> > > pposicaox        number, 
> > > pposicaoy        number ) 
> > > is 
> > > 
> > >   vposicao                historicodaf.posicao%type; 
> > >   vdatasistema          historicodaf.datasistema%type; 
> > >   vdatagps               historicodaf.datagps%type; 
> > >   vdataequipamento   historicodaf.dataequipamento%type; 
> > >   vcodigohistorico      historicodaf.codigohistorico%type; 
> > > 
> > > begin 
> > > ...
> > > 
> > > end;
> > > /
> > > 
> > > Se alguem poder me dá uma luz..  
> > > Atenciosamente,
> > > Asley
> > >
> >
>


Responder a