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]

Responder a