Обсуждение: Change a character in a text field
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.
>>> 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
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 > >
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.
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 fieldNaomi 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,ona 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.
>>> 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