SQL SERVER中字符串插入,有那些字符是特殊字符,不能插入?数据库会。。。。

时间:2023-01-04 19:11:55
SQL SERVER中字符串插入,有那些字符是特殊字符,不能插入?数据库会自动处理吗?如果不能,数据库又提供了函数可以转化它们吗?DB-LIBRARY中的函数那个可以转化它们?

6 个解决方案

#1


特殊字符有很多,我不想一一說出.

只是告訴你方法,你自己用SQLServer提供的char函數轉義.

比方說:
select char(39) 代表單引號
select char(34) 代表雙引號

char函數中填寫的是該字符的asc碼.

欲想知道字符的asc碼,請用ascii函數:

比方說,我想知道&的asc碼:
select ascii('&') 這樣即可

得到的結果是38.

那麼你用:
select char(38)就可以表示&了.

#2


當然,單引號又特殊一些.

用兩個單引號又可以代表一個.

如:
insert into test(name) values('It''s me');

然後
select * from test出來的結果是

It's me

#3


斑竹说的没错,一般特殊字符都是用char()函数来转义
比如对控制字符,在字符串中用 CHAR(13) 和 CHAR(10) 可以产生一个回车并生成一个新行。 

#4


我现在写程序要用,好象不能进行这样的转换吧!我用C写程序,用DB-LIBRARY访问数据库,不知道那位知道DB-LIBRARY中是否样这样的转换函数。不知道数据库中以字符串方式插入数据库时,除了“’”号不能直接插入外,还有那写字符不能直接插入。我想我必须对我要插入的数据进行编码。

#5


程序中也可以這樣寫呀.

如:

String strInsert = "insert into test(name) values('It'+char(39)+'s me')";
ps.execute(strInsert);

#6


这样是能解决,可是还得自己组织一遍字符串,我是问是否有这样的函数可以直接将一个字符串编码,MYSQL下就有。让这个字符串插入数据库时是合法的。如果没有,麻烦老兄告诉我SQL SERVER中,数据库对字符串数据类型,那些字符是要进行处理的。另外问一句,二进制转换为字符串,他怎样描述。如何转换0X
多谢!多谢!

#1


特殊字符有很多,我不想一一說出.

只是告訴你方法,你自己用SQLServer提供的char函數轉義.

比方說:
select char(39) 代表單引號
select char(34) 代表雙引號

char函數中填寫的是該字符的asc碼.

欲想知道字符的asc碼,請用ascii函數:

比方說,我想知道&的asc碼:
select ascii('&') 這樣即可

得到的結果是38.

那麼你用:
select char(38)就可以表示&了.

#2


當然,單引號又特殊一些.

用兩個單引號又可以代表一個.

如:
insert into test(name) values('It''s me');

然後
select * from test出來的結果是

It's me

#3


斑竹说的没错,一般特殊字符都是用char()函数来转义
比如对控制字符,在字符串中用 CHAR(13) 和 CHAR(10) 可以产生一个回车并生成一个新行。 

#4


我现在写程序要用,好象不能进行这样的转换吧!我用C写程序,用DB-LIBRARY访问数据库,不知道那位知道DB-LIBRARY中是否样这样的转换函数。不知道数据库中以字符串方式插入数据库时,除了“’”号不能直接插入外,还有那写字符不能直接插入。我想我必须对我要插入的数据进行编码。

#5


程序中也可以這樣寫呀.

如:

String strInsert = "insert into test(name) values('It'+char(39)+'s me')";
ps.execute(strInsert);

#6


这样是能解决,可是还得自己组织一遍字符串,我是问是否有这样的函数可以直接将一个字符串编码,MYSQL下就有。让这个字符串插入数据库时是合法的。如果没有,麻烦老兄告诉我SQL SERVER中,数据库对字符串数据类型,那些字符是要进行处理的。另外问一句,二进制转换为字符串,他怎样描述。如何转换0X
多谢!多谢!