DB2没有保存风格化的撇号(')

时间:2011-07-13 14:44:38

标签: character-encoding db2 db2-luw

我试图将程式化的撇号(')插入DB2 LUW 9.7中的表中。我尝试过的每一种方法都会导致它在被选中时成为一个square()。

我尝试插入的方法:

  • 在控制中心(GUI)中修改和提交行
  • 在Command Editor中通过SQL命令更新行
  • 从文件(UTF-8编码和ANSI编码)通过IBM Data Studio 2.2加载

有没有办法让这个角色进入数据库?如果没有,是否有一个根本无法使用的字符列表?

3 个答案:

答案 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=apostrophehttp://www.ibmmainframes.com/viewtopic.php?t=29213&highlight=apostrophe

答案 2 :(得分:0)

如果您正在使用API​​,一个好方法是准备语句并将包含引用的文本绑定到参数。

提醒允许某人输入引号并插入不变的内容(如sprintf(sqlstr,“INSERT INTO mytable VALUES('%s')”,inputstr);)可能会导致SQL注入。

我的意见:

  

test');删除数据库;插入mytable值('test

可能会导致数据库空白