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]