Re: handling special characters in sql strings

From: "tjk(at)tksoft(dot)com" <tjk(at)tksoft(dot)com>
To: wagner(at)imsd(dot)uni-mainz(dot)de (Markus Wagner)
Cc: pgsql-sql(at)postgresql(dot)org (pgsql-sql(at)postgresql(dot)org)
Subject: Re: handling special characters in sql strings
Date: 2001-03-19 14:58:41
Message-ID: 200103191458.GAA01225@smtp3.tksoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Markus,

Here are comments from a C function which does what you
need. You won't have the regex functions available, so the
function itself would be useless. You get the idea though.

1. First change backslashed backslashes back to single backslashes.

2. Find backslash single quote combinations (i.e. "\'") and convert them to
single quotes (i.e. "'"). Use a while loop to be sure.
Now there should be no single quotes preceded by backslashes left.

3. Find all backslashes and convert them to double backslashes.
Now all characters preceded by a backslash should be in their
original state, while all backslashed single quotes are
just single quotes. E.g. "\1ABC'ABC\2\q"

5. Find all single quotes and backslash them.
(Note: There are no single quotes preceded by a backslash, so
it is not possible to have a backslash which would hide a
backslash preceding a single quote.)

That's it.

Troy

>
> Hi,
>
> I need to insert and retrieve strings containing special characters (e.
> g. "'") and I want a C function to prepare my strings automatically. Is
> it ok to just insert a "\" before each special character? And what range
> of characters will need this handling?
>
> Thanks,
>
> Markus
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message tjk@tksoft.com 2001-03-19 15:00:21 Re: MultiByte strings
Previous Message Sarathi, Vijai (CAP) 2001-03-19 14:09:14 request for tutorial on plsql