PL/SQL 别名时用中文字符报错ora-00911 或中文乱码解决办法
2012-07-20 11:18
363 查看
今天用PL/SQL 9(最新版)的绿色汉化破解版,发现在执行查询: select user_no 户号 from lack_charge 这个语句时在 user_no处报错,错误为 ORA-00911: invalid character (无效的字符)。经过试验所有在别名中只要用中文字符就会报这个错。后来在网上查找原因结合实际情况发现:由于是绿色版,所以有些环境变量(或是注册表中的一些值)并没有正确设置造成的,解决办法是
新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。
以下是更详细的说明:
这个可能是oracle客户端和服务器端的编码方式不一样。
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';
--数据库服务器字符集
select * from nls_database_parameters;
--客户端字符集 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
select * from nls_instance_parameters;
--会话字符集的设置,这个没有特殊设置的话,和nls_instance_parameters一致
select * from nls_session_parameters;
--如果数据库服务器端的编码和客户端字符集编码不一样,则会导致乱码,因此需要更改客户端的编码方式。
--更改客户端的编码方式有两种方式,第一种是更改注册表,这个比较危险,就不在这里提及。第二种是设置环境变量。
--设置系统环境变量,新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。
--值的构成方式是数据库中查询的服务器端的“NLS_LANGUAGE的值”+“.”+“NLS_CHARACTERSET的值”
新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。
以下是更详细的说明:
这个可能是oracle客户端和服务器端的编码方式不一样。
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';
--数据库服务器字符集
select * from nls_database_parameters;
--客户端字符集 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
select * from nls_instance_parameters;
--会话字符集的设置,这个没有特殊设置的话,和nls_instance_parameters一致
select * from nls_session_parameters;
--如果数据库服务器端的编码和客户端字符集编码不一样,则会导致乱码,因此需要更改客户端的编码方式。
--更改客户端的编码方式有两种方式,第一种是更改注册表,这个比较危险,就不在这里提及。第二种是设置环境变量。
--设置系统环境变量,新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。
--值的构成方式是数据库中查询的服务器端的“NLS_LANGUAGE的值”+“.”+“NLS_CHARACTERSET的值”
相关文章推荐
- 解决使用PL/SQL客户端插入中文字符Oracle乱码
- pl/sql中文乱码解决办法
- PL/SQL Developer-中文注释乱码的解决办法
- pl/sql查询数据出现中文乱码问题的解决办法
- PL/SQL Developer 中文乱码解决办法
- Pl/sql中文乱码的解决
- URL中文乱码的问题,特殊字符的解决办法
- PL/SQL Developer 中文乱码解决
- PL SQL Developer中文乱码问题如何解决
- 解决pl/sql devloper 中数据库操作语句中文乱码的问题
- 使用PL/SQL Developer 报错:ORA-01460 :转换请求无法实现或不合理 解决办法!!!
- 中文字符乱码的原因及解决办法
- pl/sql 出现乱码解决办法 ????
- PL/SQL Developer 中文乱码问题解决
- PHP截取中文字符出现乱码的具体解决办法
- PL/SQL Developer 中文乱码解决
- 关于PL/SQL Developer 中文乱码的解决
- pl/sql中文乱码的解决
- 【转】PL/SQL Developer中文乱码问题的解决