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 <[EMAIL PROTECTED]> 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]