Pessoal, segue abaixo uma dúvida sobre uma questão em PL/SQL de um analista 
programador da empresa.

 

Eu sugeri para o processo a utilização de uma global temporary table, mas 
segundo o escopo não é permitido.

 

Se alguém tiver alguma idéia...  

 

Obrigado,

 

Obs:

Ambiente: 

            Oracle 9.2.0.5

            Linux Red Hat 9

 

 

Att.

Cleber R. Marques

Administrador de Bancos de Dados

 

 

---------

---------

---------

 

Estou enfrentando o seguinte problema  para retornar os dados de uma Stored 
Procedure:

 

Para retornar os dados da Procedure estou utilizando um cursor do tipo:

 

CREATE OR REPLACE PROCEDURE Op_Ppt_Getcustomannouncement1

    (

      cursor0       OUT sys_refcursor,

    )

 

Eu precisava retornar da procedure uma estrutura do tipo:

 

TYPE r_SelectedCustomAnnounce IS RECORD (

      codAng CUSTOMANNOUNCEMENTGROUP.codAng%TYPE,

      codCan CUSTOMANNOUNCEMENT.codCan%TYPE,

      numCanOrder CUSTOMANNOUNCEMENT.numCanOrder%TYPE,

      strCanPhraseString CUSTOMANNOUNCEMENTPHRASESTRING.strCapPhraseString%TYPE,

      qttCanMaxAnnounces CUSTOMANNOUNCEMENT.QTTCANMAXCOUNT%TYPE,

      codCat CUSTOMANNOUNCEMENTATTRIBUTE.CODCAT%TYPE,

      strCatAttribute CUSTOMANNOUNCEMENTATTRIBUTE.STRCATATTRIBUTE%TYPE,

      strCatAttributeValue CUSTOMANNOUNCEMENTATTRIBUTE.STRCATATTRIBUTEVALUE%TYPE

   );

   v_SelectedCustomAnnounce r_SelectedCustomAnnounce;

 

TYPE r_SelectedCustomAnnounceTable IS TABLE OF r_SelectedCustomAnnounce INDEX 
BY BINARY_INTEGER;

 

Esse Type Record seria uma estrutura com varios indices dentro que pode ser 
acessado da seguinte forma:

 

v_SelectedCustomAnnounce[indice].codAng

 

O que ocorre é que não é possível abrir o cursor0 e retornar todos os dados da 
estrutura. Com esse Cursor é possivel retornar apenas o primeiro registro da 
estrutura, uma vez que essa estrutura não é uma "tabela".

 

Há algumas Restrições no escopo do projeto relacionadas a não utilizar uma 
tabela temporária do tipo Temporary Globalization Table.

 

Poderia se utilizar uma tabela temporária do tipo Pl/Table, porém ao se fazer o 
Select nessa tabela e retornar pelo cursor0 ele retorna apenas o primeiro 
registro.

 

Alguém tem alguma idéia?

 

Att.

Tanaka

 

---------

---------

---------

 

 



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



______________________________________________________________________

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