Digão,  dá uma olhada neste código, vc monta um Record e utiliza ele com
uma query dinâmica.
 
 
CREATE OR REPLACE Function TESTE1
    Return Int Is
 
  --str Varchar2(1000);
 
  Type T_Cur1 Is Record
    (
      Cod   Int
    );
 
  C_Cur1  T_Cur1;
    
  Type PtypeCur1 Is Ref Cursor;
  TypeCur1 PtypeCur1 ;
  
  V_Sql              Varchar2(300);
 
 Begin
  
   V_Sql := 'SELECT cod from teste WHERE nome in
(''rodrigo'',''teste'')';
  
   Open TypeCur1 For V_Sql;
   Loop
    
         Fetch TypeCur1 Into C_Cur1;
         Exit When TypeCur1%Notfound;
               
         DBMS_OUTPUT.PUT_LINE(C_Cur1.Cod);
    
   End Loop;                                 
   Close TypeCur1;
       
   return 1;
 END;
 
  
 
 
-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Bruno Lorenzini
Enviada em: terça-feira, 16 de janeiro de 2007 07:53
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Plsql com IN num Cursor
 
Carinha, testei aqui e realmente não ta funcioando... ele reclama de
fazer
essa montagem "na raça". O que você poderia fazer é usar o comando
"execute
immediate [stmt]" ou então você pode criar uma tabela temporary table

On 1/15/07, Digao <digaopatrocinio@
<mailto:digaopatrocinio%40yahoo.com.br> yahoo.com.br> wrote:
>
> Olá pessoal, tudo bem? Estou fazendo uma função em plsql, e estou com
> problemas com um cusor.
> Tenho um cursor que faz um select filtrando com o IN. Porém, os
valores do
> IN, eu monto durante a plsql:
>
> create or replace function teste1() return int is
> valor int;
> str varchar2(1000);
> CURSOR ref1 IS SELECT cod from teste WHERE nome in (str);
> BEGIN
> str := '''rodrigo''' || ',' || '''teste''';
> OPEN ref1;
>
> LOOP
> FETCH ref1 INTO valor;
> EXIT WHEN ref1%NOTFOUND;
> DBMS_OUTPUT.PUT_LINE(valor);
> END LOOP;
>
> CLOSE ref1;
> return 1;
> END;
>
> Para montar a lista do IN, eu faço vários cálculos.
>
> Qual o erro? A função executa mas não printa os valores. Se eu colocar
> apenas 1 valor na string str, funciona... mas quando concateno a
string, não
> funciona.
> Já tentei concatenar sem aspas, com 1 aspa, com 3 aspas e nada... Já
> deixei a string no formato: 'rodrigo','teste' e também nada...
>
> Alguém tem alguma idéia?
>
> Obrigado a todos
>
> ------------
> Rodrigo (Digao)
>
>
> ---------------------------------
> Yahoo! Search
> Música para ver e ouvir: You're Beautiful, do James Blunt
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

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


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

Responder a