Обсуждение: Change a character in a text field

Поиск
Список
Период
Сортировка

Change a character in a text field

От
Naomi Walker
Дата:
Is there some way with a SQL state to interrogate a text field, and
replace characters.

For example, we would like all "|"'s to be changed to something else, on
a regular basis...
We could unload the rows, change them, and load back, but was hoping
someone had
a slicker way to do it in place..

Thanks,
Naomi

--
------------------------------------------------------------------------
Naomi Walker                          Chief Information Officer
Eldorado Computing, Inc               nwalker@eldocomp.com
  ---An EDS Company                   602-604-3100
------------------------------------------------------------------------
The more I want to get something done, the less I call it work.
   - Richard Bach
------------------------------------------------------------------------

-- CONFIDENTIALITY NOTICE --

Information transmitted by this e-mail is proprietary to MphasiS and/or its Customers and is intended for use only by
theindividual or entity to which it is addressed, and may contain information that is privileged, confidential or
exemptfrom disclosure under applicable law. If you are not the intended recipient or it appears that this e-mail has
beenforwarded to you without proper authority, you are notified that any use or dissemination of this information in
anymanner is strictly prohibited. In such cases, please notify us immediately at mailmaster@mphasis.com and delete this
mailfrom your records. 

Re: Change a character in a text field

От
"Kevin Grittner"
Дата:
>>> Naomi Walker <nwalker@mhs.mphasis.com> wrote:
> Is there some way with a SQL state to interrogate a text field, and
> replace characters.
>
> For example, we would like all "|"'s to be changed to something else,
on
> a regular basis...

It sounds like you might want to look at the regexp_replace function:

http://www.postgresql.org/docs/8.3/interactive/functions-matching.html#FUNCTIONS-POSIX-REGEXP

Be sure to use a WHERE clause on your UPDATE with the ~ operator.

-Kevin

Re: Change a character in a text field

От
Naomi Walker
Дата:
Karen Stone wrote:
> Can you please provide a complete example of how to use this in the
> update command?  ie... how do we select the table/field that we want to
> interrogate and make the change to?
>
> Thanks!
>
> Karen Stone
> Technical Services
> MphasiS Health Solutions
> 602.604.3100 x265
>
> -----Original Message-----
> From: pgsql-admin-owner@postgresql.org
> [mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Kevin Grittner
> Sent: Tuesday, July 01, 2008 2:23 PM
> To: Naomi Walker; pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] Change a character in a text field
>
>
>>>> Naomi Walker <nwalker@mhs.mphasis.com> wrote:
>>>>
>> Is there some way with a SQL state to interrogate a text field, and
>> replace characters.
>>
>> For example, we would like all "|"'s to be changed to something else,
>>
> on
>
>> a regular basis...
>>
>
> It sounds like you might want to look at the regexp_replace function:
>
> http://www.postgresql.org/docs/8.3/interactive/functions-matching.html#F
> UNCTIONS-POSIX-REGEXP
>
> Be sure to use a WHERE clause on your UPDATE with the ~ operator.
>
> -Kevin
>
>


Re: Change a character in a text field

От
Karen Stone
Дата:
Can you please provide a complete example of how to use this in the
update command?  ie... how do we select the table/field that we want to
interrogate and make the change to?

Thanks!

Karen Stone
Technical Services
MphasiS Health Solutions
602.604.3100 x265

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Kevin Grittner
Sent: Tuesday, July 01, 2008 2:23 PM
To: Naomi Walker; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Change a character in a text field

>>> Naomi Walker <nwalker@mhs.mphasis.com> wrote:
> Is there some way with a SQL state to interrogate a text field, and
> replace characters.
>
> For example, we would like all "|"'s to be changed to something else,
on
> a regular basis...

It sounds like you might want to look at the regexp_replace function:

http://www.postgresql.org/docs/8.3/interactive/functions-matching.html#F
UNCTIONS-POSIX-REGEXP

Be sure to use a WHERE clause on your UPDATE with the ~ operator.

-Kevin

--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

-- CONFIDENTIALITY NOTICE --

Information transmitted by this??e-mail is proprietary to MphasiS and/or its Customers and is intended for use only by
theindividual or entity to which it is addressed, and may contain information that is??privileged, confidential or
exemptfrom disclosure under applicable law. If you are not the intended recipient or it appears that this e-mail has
beenforwarded to you without proper authority, you are notified that any use or dissemination of this information in
anymanner is strictly prohibited. In such cases, please notify us immediately at mailmaster@mphasis.com and delete this
mailfrom your records. 

Re: Change a character in a text field

От
Naomi Walker
Дата:

Can you please provide a complete example of how to use this in the
update command?  ie... how do we select the table/field that we want to
interrogate and make the change to?

Thanks!

Karen Stone
Technical Services
MphasiS Health Solutions
602.604.3100 x265

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Kevin Grittner
Sent: Tuesday, July 01, 2008 2:23 PM
To: Naomi Walker; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] Change a character in a text field
 
Naomi Walker <nwalker@mhs.mphasis.com> wrote:        
Is there some way with a SQL state to interrogate a text field, and 
replace characters.

For example, we would like all "|"'s to be changed to something else,   
on  
a regular basis...   
 
It sounds like you might want to look at the regexp_replace function:
http://www.postgresql.org/docs/8.3/interactive/functions-matching.html#F
UNCTIONS-POSIX-REGEXP
Be sure to use a WHERE clause on your UPDATE with the ~ operator.
-Kevin
 


-- 
------------------------------------------------------------------------
Naomi Walker                          Chief Information Officer
Eldorado Computing, Inc               nwalker@eldocomp.com ---An EDS Company                   602-604-3100
------------------------------------------------------------------------
The more I want to get something done, the less I call it work.  - Richard Bach
------------------------------------------------------------------------

-- CONFIDENTIALITY NOTICE --

Information transmitted by this e-mail is proprietary to MphasiS and/ or its Customers and is intended for use only by the individual or entity to which it is addressed, and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please notify us immediately at mailmaster@mphasis.com and delete this e-mail from your records.

 

Re: Change a character in a text field

От
"Kevin Grittner"
Дата:
>>> Karen Stone <kstone@mhs.mphasis.com> wrote:
>>> Is there some way with a SQL state to interrogate a text field, and

>>> replace characters.
>>>
>>> For example, we would like all "|"'s to be changed to something
else,
>>> on
>>> a regular basis...
>>
>> It sounds like you might want to look at the regexp_replace
function:
>>
>>
http://www.postgresql.org/docs/8.3/interactive/functions-matching.html#F
>> UNCTIONS-POSIX-REGEXP
>>
>> Be sure to use a WHERE clause on your UPDATE with the ~ operator.
>
> Can you please provide a complete example of how to use this in the
> update command?  ie... how do we select the table/field that we want
to
> interrogate and make the change to?

Assuming standard_conforming_strings is on, this (untested) should do
it:

UPDATE sometable
  SET somecolumn = regexp_replace(somecolumn, '\|', 'something else',
'g')
  WHERE somecolumn ~ '\|';

If standard_conforming_strings is off, double the backslashes.

-Kevin