On Wed, Dec 14, 2011 at 05:29:15PM +0000, Elliot Voris wrote:
> Update:
> 
> I noticed that when I was saving the sql file in Notepad++, it was encoded 
> using ANSI. I switched that to UTF-8, and I received the same result. Is 
> PostgreSQL interpreting the single-quote (') as an escape character? Or is 
> the issue something else?

Hi Elliot:

Yes, single quotes in SQL can escape other single quotes. For example,
if you need a singl quote in the middle of a string that you're
inserting into the database, you would place another single quote in
front of it like so:

'So that''s what the fuss is about'

I'm guessing that in your case, PostgreSQL saw something like:

'<record><datafield tag="440" ind1="0" ind2=" "><subfield code="a">So that's the
problem</subfield></datafield></record>'

and got confused by the unescaped single quote in the text of the
subfield.

To avoid problems with embedded single quotes in MARC records in that
example SQL file, I ran a regular expression to escape all of the
existing single quotes before wrapping them with the start / end single
quotes. In vim, the command was :%s/'/''/g but your editor of choice
will vary.

Dan

Reply via email to