我正在尝试在 DB2 LUW 9.7 中的表中插入一个风格化的撇号 (')。我尝试过的每种方法都导致它在选择回来时是一个正方形 ()。
我尝试插入的方法:
- 在控制中心 (GUI) 中修改和提交一行
- 在命令编辑器中通过 SQL 命令更新行
- 通过 IBM Data Studio 2.2 从文件(UTF-8 编码和 ANSI 编码)加载
有没有办法让这个字符进入数据库?如果没有,是否有一个根本无法使用的字符列表?
我正在尝试在 DB2 LUW 9.7 中的表中插入一个风格化的撇号 (')。我尝试过的每种方法都导致它在选择回来时是一个正方形 ()。
我尝试插入的方法:
有没有办法让这个字符进入数据库?如果没有,是否有一个根本无法使用的字符列表?
您的数据库/表空间的编码是什么?我怀疑它需要设置为 UTF-8。您可能需要创建一个新表空间或重新创建数据库,并将编码显式设置为 UTF-8。
要确定编码,请运行以下命令并查找“代码集”信息:
db2 get db cfg for <database name>
insert into userid.empy values(1234,'RAM''');
您已经输入了 2 个单引号,以便单引号出现在表格中。
另请参阅: http ://www.ibmmainframes.com/viewtopic.php?t=36901&highlight=撇号和 http://www.ibmmainframes.com/viewtopic.php?t=29213&highlight=撇号
如果您使用 API,一个好方法是准备语句并将包含引号的文本绑定到参数。
提醒一下,允许某人输入引号并插入未更改的内容(如 sprintf(sqlstr, "INSERT INTO mytable VALUES ('%s')", inputstr);)可能会导致 SQL 注入。
我的输入:
test');删除数据库;插入mytable值('test
可能导致空数据库