Re: Using COPY

Поиск
Список
Период
Сортировка
От Joel Burton
Тема Re: Using COPY
Дата
Msg-id JGEPJNMCKODMDHGOBKDNMEFNCOAA.joel@joelburton.com
обсуждение исходный текст
Ответ на Re: Using COPY  ("Peter Darley" <pdarley@kinesis-cem.com>)
Список pgsql-general
Well, you could, with something like

UPDATE tblFoo SET foo=
substring(foo from 1 for (position('@@~@@' in foo))-1) || '\n' ||
substring(foo from (position('@@~@@' in foo))+5) where foo like '%@@~@@%';

(Try saying that ten times fast! :) )

P.S. Fix the +5 above to match the length of the marker string.

> -----Original Message-----
> From: pgsql-general-owner@postgresql.org
> [mailto:pgsql-general-owner@postgresql.org]On Behalf Of Peter Darley
> Sent: Tuesday, May 14, 2002 6:15 PM
> To: Joel Burton
> Cc: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] Using COPY
>
>
> Joel,
>     Darn, I was hoping it was possible to do it with just SQL. :)
> Thanks,
> Peter Darley
>
> -----Original Message-----
> From: Joel Burton [mailto:joel@joelburton.com]
> Sent: Tuesday, May 14, 2002 3:11 PM
> To: Peter Darley
> Cc: pgsql-general@postgresql.org
> Subject: RE: [GENERAL] Using COPY
>
> create function fix_marker(text) returns text as '
>   $_ = shift;
>   s/@@~@@/\\n/;
>   return $_;
> ' language 'plperl';
>
> update tblFoo set foo=fix_marker(foo) where foo like '%@@~@@%';
>
> would do nicely. Or you could do it in plpython, plruby (if installed), or
> plperl.
>
> You could do it in plpgsql with a combination of ugly left || right with
> strpos, but it's a lot easier in languages that have string-replace
> functions.
>
> - J.
>
> Joel BURTON | joel@joelburton.com | joelburton.com | aim: wjoelburton
> Knowledge Management & Technology Consultant
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>


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

Предыдущее
От: Bill Gribble
Дата:
Сообщение: (security) Rules of thumb for escaping user input?
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Spped of max