如何解决Oracle字符编码
| 我在DEV服务器上有一个MVIEWCREATE MATERIALIZED VIEW MY_MVIEW
AS
SELECT col1 AS \"N° INVOICE\" from TABLE
MVIEW已安装在PROD服务器上,当我检查其查询时,无法识别字符°
SELECT query from user_mviews where mview_name = \'MY_MVIEW\' ;
QUERY
---------------------------------------
SELECT col1 AS \"N? INVOICE\" from TABLE
我们用Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
对于两种环境。
知道为什么会这样以及如何纠正吗?还是我需要重命名别名?
解决方法
每当您看到问号而不是特殊字符时,表示客户的字符集不支持该字符,并且无法进行转换。
转换是将数据库字符集作为源,将客户字符集作为目标。环境变量NLS_LANG使您可以控制客户端字符集。必须在打开连接之前设置NLS_LANG,并且在会话期间不能更改它。
有关NLS_LANG的更多信息,请参考《Oracle®数据库全球化支持指南》
顺便说一句,NLS_LANGUAGE与字符集无关!它仅控制服务器消息和区域设置中使用的语言。
,我绝对建议您将别名重命名为简单的名称,例如NO_INVOICE,该名称不包含任何不寻常的字符,并且不需要在双引号中进行引用。将列名视为报告的格式标题是不合适的-在报告中进行操作。使用这样的非标准字符,您将在NLS_LANG等不同的环境设置下遇到问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。