English 中文(简体)
使用Oracle ODBC的准备好的 vs. 直接语句的差异
原标题:
  • 时间:2008-10-20 12:57:40
  •  标签:

我正在使用与我的操作系统语言不同的排序规则的Oracle数据库。我使用ODBC驱动程序访问数据库。当我准备一个语句(如“select * from x where =?”)时,其中涉及DB所支持的特殊的非ASCII字符,我会找到具有这些字符的数据行。当我直接使用SQL字符串中的参数执行选择时,数据行将不会被找到。

最佳回答

我个人的纯粹猜测,可能是因为您的客户端计算机没有正确地对SQL字符串进行编码,其中写入了参数。我认为,如果您的客户端设置与DB排序不同的区域设置,则包含发送到Oracle的选择语句的字符数组将包含“不正确”的字节,原来奇怪的字符所在的位置- Oracle将解释这些字符为与您最初发送的字符不同的某些其他字符(导致未找到该行)。

你为什么不能只使用参数化的方法(因为它已经可以正确运作了)?

问题回答

暂无回答




相关问题
热门标签