我试图将程式化的撇号(')插入DB2 LUW 9.7中的表中。我尝试过的每一种方法都会导致它在被选中时成为一个square()。
我尝试插入的方法:
有没有办法让这个角色进入数据库?如果没有,是否有一个根本无法使用的字符列表?
答案 0 :(得分:4)
数据库/表空间的编码是什么?我怀疑它需要设置为UTF-8。您可能需要创建新的表空间或使用显式设置为UTF-8的编码重新创建数据库。
要determine the encoding,请运行以下命令并查找“代码集”信息:
db2 get db cfg for <database name>
答案 1 :(得分:1)
来自Inserting an Apostrophe in DB2 table
insert into userid.empy values(1234,'RAM''');
您已添加2个单引号,以便在单个引号中显示 表
另见: http://www.ibmmainframes.com/viewtopic.php?t=36901&highlight=apostrophe和 http://www.ibmmainframes.com/viewtopic.php?t=29213&highlight=apostrophe
答案 2 :(得分:0)
如果您正在使用API,一个好方法是准备语句并将包含引用的文本绑定到参数。
提醒允许某人输入引号并插入不变的内容(如sprintf(sqlstr,“INSERT INTO mytable VALUES('%s')”,inputstr);)可能会导致SQL注入。
我的意见:
test');删除数据库;插入mytable值('test
可能会导致数据库空白