我正在使用与我的操作系统语言不同的排序规则的Oracle数据库。我使用ODBC驱动程序访问数据库。当我准备一个语句(如“select * from x where =?”)时,其中涉及DB所支持的特殊的非ASCII字符,我会找到具有这些字符的数据行。当我直接使用SQL字符串中的参数执行选择时,数据行将不会被找到。
使用Oracle ODBC的准备好的 vs. 直接语句的差异
原标题:
最佳回答
我个人的纯粹猜测,可能是因为您的客户端计算机没有正确地对SQL字符串进行编码,其中写入了参数。我认为,如果您的客户端设置与DB排序不同的区域设置,则包含发送到Oracle的选择语句的字符数组将包含“不正确”的字节,原来奇怪的字符所在的位置- Oracle将解释这些字符为与您最初发送的字符不同的某些其他字符(导致未找到该行)。
你为什么不能只使用参数化的方法(因为它已经可以正确运作了)?
问题回答
暂无回答
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding