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]