Valeu Chiappa, O Lance da global temporary table foi exatamente o que eu sugeri para o pessoal daqui.
Mas vou dar uma pesquisada no link sim. E obrigado por responder. Att. Cleber R. Marques Administrador de Bancos de Dados Programmers Informática Ltda -----Mensagem original----- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de jlchiappa Enviada em: quarta-feira, 6 de julho de 2005 15:05 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Re: PL Table Hmm, algo está estranho aí : vc está declarando uma table of (ie, uma PL/SQL table) , e mais à frente está usando o método .EXTEND , que tipicamente é usado com SQL TYPES , pois PL/SQL Tables são esparsas (ie, só se criam os elementos que vc pede), portanto NÂO precisa extender ???? Algo não está "batendo" bem nesse código, a impressão é que vc está misturando o que é tipo PL/SQL com o que é tipo SQL .... Sugiro que vc dê uma estudada na thread http://asktom.oracle.com/pls/ask/f? p=4950:8:::::F4950_P8_DISPLAYID:246014735810 pra discussão de tipos SQL e PL/SQL (normalmente retornar um resultset pra array se faz em tipo SQL, já que aí o banco conhece o tipo seja em SQL, seja em PLSQL), e em http://asktom.oracle.com/pls/ask/f? p=4950:8:::::F4950_P8_DISPLAYID:10369303150185 para as questões disso em relação à dblinks. ==>> E importante : se é na mesma sessão que vc quer retornar o resultset, a maneira APROPRIADA é via global temporary table, ** não ** precisa de COISA ALGUMA dessas complicações, ** não ** tem limite prático de tamanho, vc pode fazer TODA e QUALQUER manipulação via SQL (inclusive ordenar, agrupar, etc, etc). []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Cleber Roberto Marques" <[EMAIL PROTECTED]> escreveu > Pessoal, boa tarde ! > > Estamos com um problemão aqui na empresa devido à uma PL Table. > > O Lance é que não conseguimos retornar os dados da mesma através de um cursor OUT. > > Quando compilo a PROCEDURE (similar para teste) abaixo é dado o seguinte erro: > > ORA-22905: cannot access rows from a non-nested table item > > E mesmo utilizando um cast no table do open cursor0 -- que seria assim: table(cast(v_employees_type as r_employees_type)) -- não funciona, aí ele gera o erro: > > ORA-00902: invalid datatype > > Alguém jah trabalhou com isso e teria alguma idéia? > > Obrigado! > > > CREATE OR REPLACE PROCEDURE PR_TESTE (cursor0 OUT sys_refcursor) as > > TYPE r_employees_type IS RECORD ( > employee_id employees.employee_id%type, > first_name employees.first_name%type, > salary employees.salary%type); > > type t_employees_type is table of r_employees_type; > > v_employees_type t_employees_type := t_employees_type(); > > c number; > > begin > null; > c:= 1; > > for x in (select employee_id, first_name, salary from employees) loop > v_employees_type.extend; > v_employees_type(c).employee_id := x.employee_id; > v_employees_type(c).first_name := x.first_name; > v_employees_type(c).salary := x.salary; > > c:= c+1; > end loop; > > open cursor0 for > select > employee_id, > first_name, > salary > from > table(v_employees_type); > > > end; > > > At. > Cleber R. Marques > Administrador de Bancos de Dados > Programmers Informática Ltda ______________________________________________________________________ Cancelar assinatura...: [EMAIL PROTECTED] Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED] Fernanda Damous [EMAIL PROTECTED] Alisson Aguiar [EMAIL PROTECTED] ______________________________________________________________________ http://br.groups.yahoo.com/group/oracle_br/ ______________________________________________________________________ Sair da Lista...: [EMAIL PROTECTED] Links do Yahoo! Grupos ______________________________________________________________________ Cancelar assinatura...: [EMAIL PROTECTED] Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED] Fernanda Damous [EMAIL PROTECTED] Alisson Aguiar [EMAIL PROTECTED] ______________________________________________________________________ http://br.groups.yahoo.com/group/oracle_br/ ______________________________________________________________________ Sair da Lista...: [EMAIL PROTECTED] 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