Escaping international (unicode) characters in string

Escaping international (unicode) characters in string

am 29.05.2007 15:22:53 von usenet200705

Y'all:

I am needing some way, in the SQL Server dialect of SQL, to escape unicode
code points that are embedded within an nvarchar string in a SQL script,
e.g. in Java I can do:

String str = "This is a\u1245 test.";

in Oracle's SQL dialect, it appears that I can accomplish the same thing:

INSERT INTO TEST_TABLE (TEST_COLUMN) VALUES ('This is a\1245 test.");


I've googled and researched through the MSDN, and haven't discovered a
similar construct in SQL Server. I am already aware of the UNISTR()
function, and the NCHAR() function, but those aren't going to work well if
there are more than a few international characters embedded within a
string.

Does anyone have a better suggestion?

Thanks muchly!
GRB

--
------------------------------------------------------------ ---------
Greg R. Broderick usenet200705@blackholio.dyndns.org

A. Top posters.
Q. What is the most annoying thing on Usenet?
------------------------------------------------------------ ---------

Re: Escaping international (unicode) characters in string

am 29.05.2007 15:39:09 von Erland Sommarskog

Greg R. Broderick (usenet200705@blackholio.dyndns.org) writes:
> I am needing some way, in the SQL Server dialect of SQL, to escape unicode
> code points that are embedded within an nvarchar string in a SQL script,
> e.g. in Java I can do:
>
> String str = "This is a\u1245 test.";

SELECT @str = 'This is a' + nchar(1245) + ' test'

Note here that 1245 is decimal. If you want to use hex code (which you
normally do with Unicode), you would do:

SELECT @str = 'This is a' + nchar(0x1245) + ' test'




--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downlo ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books .mspx

Re: Escaping international (unicode) characters in string

am 29.05.2007 19:01:43 von usenet200705

Erland Sommarskog wrote in
news:Xns993F9F38ABD05Yazorman@127.0.0.1:

> Greg R. Broderick (usenet200705@blackholio.dyndns.org) writes:
>> I am needing some way, in the SQL Server dialect of SQL, to escape
>> unicode code points that are embedded within an nvarchar string in a
>> SQL script, e.g. in Java I can do:
>>
>> String str = "This is a\u1245 test.";
>
> SELECT @str = 'This is a' + nchar(1245) + ' test'
>
> Note here that 1245 is decimal. If you want to use hex code (which you
> normally do with Unicode), you would do:
>
> SELECT @str = 'This is a' + nchar(0x1245) + ' test'

When there are more than one or two non-US-ASCII characters in the string,
this quickly becomes impractically unwieldy, thus my comment in my original
posting:

--- quote ---

I am already aware of the UNISTR() function, and the NCHAR() function, but
those aren't going to work well if there are more than a few international
characters embedded within a string.

--- quote ---

Thanks anyway, though. :-)

--
------------------------------------------------------------ ---------
Greg R. Broderick usenet200705@blackholio.dyndns.org

A. Top posters.
Q. What is the most annoying thing on Usenet?
------------------------------------------------------------ ---------

Re: Escaping international (unicode) characters in string

am 29.05.2007 23:23:00 von Erland Sommarskog

Greg R. Broderick (usenet200705@blackholio.dyndns.org) writes:
> When there are more than one or two non-US-ASCII characters in the
> string, this quickly becomes impractically unwieldy, thus my comment in
> my original posting:

If the are in sequence, you could do:

convert(nvarchar, 0x34123512...)

although this is certainly not too funny as you have twitch the bytes
around.

Another solution to use something like Microsoft Visual Keyboard, and
simply put the actual characters there.


--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downlo ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books .mspx