YEA*_*lyn 9 mysql encoding oracle-sqldeveloper
我有一个mysql数据库,其中utf8包含所有表的字符集.我正在使用SQLDeveloper使用最新的JConnector JDBC驱动程序访问和查询数据库.
当执行简单查询(例如SELECT '?????';等效于SELECT '?????' from DUAL;包含保加利亚语言的查询)时,SQLDeveloper将返回'?????'.这使得我使用保加利亚语言返回的数据库中的选择NULL,因为他们的where子句(包含保加利亚语言)uft8与数据库中的保加利亚字符不匹配.(当select不使用保加利亚语时,SQLDeveloper会返回完全正确的值,并显示正确查询返回的保加利亚语言.)
该Preferences -> Environment -> Encoding在的SQLDeveloper目前被设定为UTF-8,但我试图在那里,即使是最简单的查询上市几乎所有适用的编码SELECT '?????' from DUAL;还回不回正确的值?????.
我已经研究过设置变量NLS_LANG,认为这可能是原因但无济于事.(也许它毕竟是关键,但我无法正确配置它).
编辑:为了重现问题并将其可视化(因为我意识到我可能解释得很差)只需进入SQLDeveloper并连接到mysql数据库并执行查询SELECT '?????' from DUAL;.
编辑2:澄清.
编辑3:正如@tenhouse留下的评论所示,这可能是一个错误.
编辑4:如下面作为评论所述,上述查询SELECT '?????' from DUAL;完全正常,没有任何修改和/或设置在MySQL Workbench上.
编辑5:如果您觉得可以改进某些内容,请随时更正标题和/或标签,因为仍然无法解决问题.
编辑6:到现在我可以假设它真的是一个错误吗?任何人都可以告诉我在哪里报告它 - 它是一个JConnector或SQLDeveloper相关的错误.我认为我必须将其报告为SQLDeveloper错误,但我宁愿在可能浪费时间之前得到确认.
编辑7:我希望得到一个答案,试图进一步澄清它.
Edit8 :(重要!)我当前的数据库托管在linux(Ubuntu 12.04,MySQL 5.5.28)服务器上.但是,如果我在一台全新的Windows机器上安装MySQL并在utf8那里创建一个数据库,那么通过SQLDeveloper查询就可以正常工作,SELECT '?????' from DUAL;实际上会返回?????.有人可以确认一下吗?
小智 0
您可以尝试这样的命令::: ALTER DATABASE CHARACTER SET WE8ISO8859P5;
更改字符集后请重新启动DB。
更多详细信息请参阅此链接,其中解释了不同语言所需的编码
http://www.csee.umbc.edu/portal/help/oracle8/server.815/a67789/ch3.htm
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |