talvez se está usando o pl/pgsql ...

EXECUTE '
           ( ... )
           WHERE id_tabela IN (' || new.campo_varchar || ')
';


http://pgdocptbr.sourceforge.net/pg80/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN





2008/10/1 Osvaldo Kussama <[EMAIL PROTECTED]>

> 2008/10/1, Fabricio Fagundes <[EMAIL PROTECTED]>:
> >
> > Tenho um campo do tipo vachar que quarda os ids de uma determinda seleção
> de
> > registros ex: '1, 2, 3, 4, 5'
> >
> > Estou criando uma trigger onde quero usar este campo para seleção em um
> > update ex:
> > WHERE
> >   id_tabela in (new.campo_varchar).
> >
> > Resultado final esperado:
> > WHERE id IN (1, 2, 3, 4, 5) - obs este campo id é uma chave, tipo
> integer.
> >
>
>
> Você provavelmente já tentou e concluiu que não dá para usar IN string.
>
> Você tem pelo menos três opções:
> - transformar ssua string em uma tabela:
> ... WHERE id IN regexp_split_to_table(sua_string, ', ')
>
> - transformar sua string em um array:
> ... WHERE id ANY (regexp_split_to_array(sua_string, ', '))
>
> - verificar se id é um substring de seu campo:
> ... WHERE strpos(sua_string, to_char(id, '9')) > 0
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a