Gostaria de agradecer a todos que me ajudaram.
Sergio, Zaballa e Júlio.

Outra pergunta.. é possivel ver o "custo de execução" de uma procedure ou
function igual a select?
Ou tenho que contabilizar por tempo de execução + tempo de cpu?

Obrigado

Eduardo

2009/9/11 Sergio Lucchini <ser...@mercanet.com.br>

>
>
> O correto é "VALUES (cpf_data(i).CPF, fonetizar(cpf_data(i).nome);"
>
> -----Mensagem original-----
> De: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> [mailto:
> oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] Em nome de
> Eduardo
> Enviada em: sexta-feira, 11 de setembro de 2009 14:06
> Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> Assunto: Re: [oracle_br] bulk collect
>
>
> Júlio e Zaballa,
>
> acho que entendi a opção limit, mas como faço para acessar os campos do
> cursor?
> Dá erro nesta linha"VALUES (cpf_data.CPF (i),fonetizar(cpf_data.nome(i));"
>
> CREATE OR REPLACE PROCEDURE PF2.geranomefonetizado2 (
> limit_in IN PLS_INTEGER
> )
> IS
> CURSOR cursor1
> IS
> SELECT cpf, nome FROM pf2.pessoa_fisica;
>
> TYPE cpf_aat
> IS
> TABLE OF cursor1%ROWTYPE
> INDEX BY PLS_INTEGER;
>
> cpf_data cpf_aat;
>
> BEGIN
> OPEN cursor1;
>
> LOOP
> FETCH cursor1 BULK COLLECT INTO cpf_data LIMIT limit_in;
>
> FOR i IN 1 .. cpf_data.LAST
> LOOP
> INSERT INTO o_cpf2.nome_fonetizado (cpf,NOME_FONETIZADO)
> VALUES (cpf_data.CPF (i),fonetizar(cpf_data.nome(i));
> END LOOP;
>
> EXIT WHEN cpf_data.COUNT < limit_in;
> END LOOP;
>
> CLOSE cursor1;
> END;
> /
>
> 2009/9/11 Júlio César Corrêa 
> <juliotubi...@yahoo.com.br<juliotubista%40yahoo.com.br>
> >:
> > Bulk.Mas usa a clausa LIMIT para te ajudar.Quando você usa coleção
> consome
> > mais memória também.
> >
> > http://www.oracle.com/technology/oramag/oracle/08-mar/o28plsql.html
> >
> > 2009/9/11 Eduardo <eduardo.pa...@gmail.com <eduardo.paula%40gmail.com>>
> >
> >>
> >>
> >> Boa tarde turma!
> >>
> >> Minha dúvida é sobre bulk collect em pl/sql.
> >>
> >> Tem como controlar o tamanho do tabela utilizada? Pois eu rodei o
> >> código abaixo e simplesmente sentei o servidor de desenvolvimento. A
> >> tabela tem mais 200 milhões de registros.
> >> Ou seria melhor fazer usando cursor?
> >>
> >> CREATE OR REPLACE PROCEDURE PF2.geranomefonetizado2
> >> IS
> >>
> >> TYPE cpf_aat is table of pf2.pessoa_fisica.cpf%TYPE INDEX BY
> PLS_INTEGER;
> >> TYPE nome_aat is table of pf2.pessoa_fisica.nome%TYPE INDEX BY
> PLS_INTEGER;
> >>
> >> cpf_data cpf_aat;
> >> nome_data nome_aat;
> >>
> >> procedure retrieve_info
> >> is
> >> begin
> >> select cpf, nome
> >> bulk collect into cpf_data, nome_data
> >> from pf2.pessoa_fisica;
> >>
> >> end;
> >>
> >> procedure add_fonetizado
> >> is
> >> begin
> >> forall i IN cpf_data.FIRST..cpf_data.LAST
> >> insert into pf2.nome_fonetizado (cpf,NOME_FONETIZADO)
> >> values (cpf_data(i),fonetizar(nome_data(i)));
> >>
> >> end;
> >>
> >> begin
> >> retrieve_info;
> >> add_fonetizado;
> >>
> >> end;
> >> /
> >>
> >> Obrigado por alguma dica aí.
> >>
> >>
> >
> >
> >
> > --
> > Júlio César Corrêa
> > IS Technologist - Oracle DBA
> > www.dbajccorrea.com
> >
> > "To stay competitive in the tech industry, never stop
> > learning. Always be on the lookout for better ways of
> > doing things and new technologies. Our industry does
> > not reward people who let themselves stagnate"
> > -John Hall, Senior Vice President, Oracle University
> >
> >
> > [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
> >
> >
> >
>
> ------------------------------------
>
> ----------------------------------------------------------
> >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
>
> Checked by AVG - www.avg.com
> Version: 8.5.408 / Virus Database: 270.13.89/2360 - Release Date: 09/11/09
> 09:15:00
>
>  
>


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

Responder a