Re: problem using regexp_replace

Поиск
Список
Период
Сортировка
От Jasen Betts
Тема Re: problem using regexp_replace
Дата
Msg-id hihosa$sj4$1@reversiblemaps.ath.cx
обсуждение исходный текст
Ответ на problem using regexp_replace  (gherzig@fmed.uba.ar)
Ответы Re: problem using regexp_replace
Список pgsql-sql
On 2010-01-11, gherzig@fmed.uba.ar <gherzig@fmed.uba.ar> wrote:

> So, i come with this:
> SELECT regexp_replace(
>     formato, E'{([^.]*)\.([a-zA-Z0-9]*)},
> valores_sustitucion(ARRAY[E'\\1'::varchar,E'\\2'::varchar]),
>                  'g')
> from table where id =1;

select valores_sustitucion(ARRAY[E'\\1'::varchar,E'\\2'::varchar]); valores_sustitucion  ---------------------  FALSE

that's the problem you are getting, the valores_sustitucion works on
the values given and that result is given to regexp_replace.

try this:

create OR REPLACE function magic( inp text ) returns text as $F$
DECLARE 
tmp text;
res text;
BEGINtmp= 'SELECT ' || regexp_replace(quote_literal(inp),E'{([^.]*)\.([a-zA-Z0-9]*)}',    $s$'||
valores_sustitucion(ARRAY[E'\1',E'\2'])||'$s$,'g');
 
--    raise notice 'tmp=%',(tmp);EXECUTE tmp INTO res; RETURN res;
END;
$F$ language plpgsql;

SELECT magic( formato ) FROM from table where id =1;


В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: CHECK constraint removing brackets
Следующее
От: gherzig@fmed.uba.ar
Дата:
Сообщение: Re: problem using regexp_replace