Marcio,

        A resposta para essa questão é que o programador que irá implementar 
isso precisa alterar esses dados e retornar para uma aplicação .NET em forma de 
relatório.

Cleber

-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Marcio R 
Portes
Enviada em: quinta-feira, 7 de julho de 2005 01:17
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Re: PL Table

Cleber,

por que ao inves de tudo isso voce nao faz simplesmente:
[Eu nao compilei o codigo]


create or replace procedure pr_teste ( cursor0 out sys_refcursor )
as
begin
    open cursor0 for select empno, ename, sal from emp;
end;
/

var x refcursor

exec pr_teste( :x )

print x

copia e cola isso no sqlplus. Na sua aplicacao voce vai passar o x (ref 
cursor) para a procedure.

abracos,
--
Marcio Portes
http://mportes.blogspot.com


jlchiappa wrote:
> 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




 




______________________________________________________________________

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

 


Responder a