oracle客户端 与 服务端字符集大疑问??
2007-07-10 10:25
567 查看
oracle服务器环境
操作系统: redhat linux7.1
oracle版本: oracle8.1.7
字符集相关的属性:
1、在sys.props$ 中
nls_language AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSE ZHS16GBK
2、运行select userenv('language') from dual;
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3 安装配置文件shell-mods.sh中有
export NLS_LANG="simplified chinese_china.zhs16gbk"
oracle客户端环境
操作系统: win2000
oracle版本: oracle8.1.7
字符集相关的属性:
1、注册表中的 nls_lang 为 NA
2、dbappscfg.properities文件中存在
#sqlplus_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
测试:在客户端 (测试过程中,改完字符集后都关闭程序,在重新运行)
1、修改nls_lang 等于任何值(试验值为NA12和AMERICAN_AMERICA.WE8ISO8859P1)
sqlworksheet 和应用程序 都正常
2、修改dbappscfg.properities文件中
的sqlplus_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
或sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
sqlworksheet出现 ERROR: ORA-12560: TNSrotocol adapter error
应用程序正常
3、修改修改dbappscfg.properities文件中
的sqlplus_NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sqlworksheet 和应用程序都正常
提问:
1 客户端字符集在那里配置?
2 sqlworksheet和一般应用程序字符集设置有何不同?
3 测试2把sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK为何sqlworksheet不能正常运行
而设置SIMPLIFIED CHINESE_CHINA.ZHS16GBK就可以
4 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK有何区别?
5 假设我有dba用户我如何知道服务器的字符集(我指的是SIMPLIFIED
HINESE_CHINA.ZHS16GBK这一整串,也就是说select userenv('language') from
dual; 得到的值在那个字典中)
6 在oracle8.0.5中客户端的字符集可以从注册表的nls_lang中修改即可,8.1.7的nls_lang
参数做什么用呢??
(上面的应用程序指的是用pb自己开发测试的程序)
谢谢大家的回答!!!!!!!
谢谢
测试补充
上面测试中的nls_lang为注册表中oracle键下面的值
若修改home0下的nls_lang的值
1、修改为 AMERICAN_AMERICA.ZHS16GBK
sqlworksheet 正常 应用程序正常
2、修改为 AMERICAN_AMERICA.US7ASCII
sqlworksheet 和 应用程序 查数据是乱码
3、修改为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sqlworksheet 正常 应用程序正常
新疑问:
在注册表中SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK
对sqlworksheet为什么是一样的
oracle键下面的nls_lang值为什么 修改没有作用???
注册表中的几个nls_lang值各有什么作用???
谢谢!!!!!!!!!!!
谢谢!!!!!!!!!!!
1 客户端字符集在那里配置?
就是注册表里面相应OracleHome的NLS_LANG
2 sqlworksheet和一般应用程序字符集设置有何不同?
这个东西老是有问题,俺从来不用。
3 测试2把sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK为何sqlworksheet不能正常运行
而设置SIMPLIFIED CHINESE_CHINA.ZHS16GBK就可以
同2。
4 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK有何区别?
真正的字符集只是第三部分。前面两个部分分别是国家和地区。第三部分才是字符集。所以只要第三部分一样就是可以得。前面影响提示信息是中文还是英文。
5 假设我有dba用户我如何知道服务器的字符集(我指的是SIMPLIFIED
HINESE_CHINA.ZHS16GBK这一整串,也就是说select userenv('language') from
dual; 得到的值在那个字典中)
sys.props$ 里面有记录。
SQL> select value$ from sys.props$ where name like 'NLS_CHA%';
6 在oracle8.0.5中客户端的字符集可以从注册表的nls_lang中修改即可,8.1.7的nls_lang
参数做什么用呢??
和805地一样。
新问题:
主要是不同OracleHome用的。每个OracleHome可以有自己不同的设置。
还可以在dos窗口里面自己设置,比如
set nls_lang=american_america.zhs16gbk.
这样就只影响这个窗口里面的环境变量。
hi,
环境变量的NLS_LANG实际上是三部分,就如上文所说。
的一部分NLS_LANGUAGE,
第二部分NLS_TERRITORY
第三部分字符集。
都相应在sys.props$里面有字段描述的。
例子:
SQL> select name, substr(value$,1,30) from sys.props$;
NAME SUBSTR(VALUE$,1,30)
------------------------------ ------------------------------
DICT.BASE 2
DBTIMEZONE 0:00
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8DEC
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NAME SUBSTR(VALUE$,1,30)
------------------------------ ------------------------------
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:T
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET WE8DEC
NLS_RDBMS_VERSION 8.1.7.0.0
GLOBAL_DB_NAME DEV.WORLD
EXPORT_VIEWS_VERSION 8
22 rows selected.
其实在我看来,只有字符集才有用,别的似乎都没有什么关系。不影响存储,也不影响显示(被用户的环境变量覆盖)。不是确信,请指点。
你可以试下下面的语句,我也成功的修改过字符集.在SVRGRL中执行
shutdown immediate; --a long time
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET ZHS16GBK;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER DATABASE OPEN;
alter database national character set ZHS16GBK;
SHUTDOWN IMMEDIATE;
STARTUP;
【来源】
操作系统: redhat linux7.1
oracle版本: oracle8.1.7
字符集相关的属性:
1、在sys.props$ 中
nls_language AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSE ZHS16GBK
2、运行select userenv('language') from dual;
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3 安装配置文件shell-mods.sh中有
export NLS_LANG="simplified chinese_china.zhs16gbk"
oracle客户端环境
操作系统: win2000
oracle版本: oracle8.1.7
字符集相关的属性:
1、注册表中的 nls_lang 为 NA
2、dbappscfg.properities文件中存在
#sqlplus_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
测试:在客户端 (测试过程中,改完字符集后都关闭程序,在重新运行)
1、修改nls_lang 等于任何值(试验值为NA12和AMERICAN_AMERICA.WE8ISO8859P1)
sqlworksheet 和应用程序 都正常
2、修改dbappscfg.properities文件中
的sqlplus_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
或sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
sqlworksheet出现 ERROR: ORA-12560: TNSrotocol adapter error
应用程序正常
3、修改修改dbappscfg.properities文件中
的sqlplus_NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sqlworksheet 和应用程序都正常
提问:
1 客户端字符集在那里配置?
2 sqlworksheet和一般应用程序字符集设置有何不同?
3 测试2把sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK为何sqlworksheet不能正常运行
而设置SIMPLIFIED CHINESE_CHINA.ZHS16GBK就可以
4 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK有何区别?
5 假设我有dba用户我如何知道服务器的字符集(我指的是SIMPLIFIED
HINESE_CHINA.ZHS16GBK这一整串,也就是说select userenv('language') from
dual; 得到的值在那个字典中)
6 在oracle8.0.5中客户端的字符集可以从注册表的nls_lang中修改即可,8.1.7的nls_lang
参数做什么用呢??
(上面的应用程序指的是用pb自己开发测试的程序)
谢谢大家的回答!!!!!!!
谢谢
测试补充
上面测试中的nls_lang为注册表中oracle键下面的值
若修改home0下的nls_lang的值
1、修改为 AMERICAN_AMERICA.ZHS16GBK
sqlworksheet 正常 应用程序正常
2、修改为 AMERICAN_AMERICA.US7ASCII
sqlworksheet 和 应用程序 查数据是乱码
3、修改为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sqlworksheet 正常 应用程序正常
新疑问:
在注册表中SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK
对sqlworksheet为什么是一样的
oracle键下面的nls_lang值为什么 修改没有作用???
注册表中的几个nls_lang值各有什么作用???
谢谢!!!!!!!!!!!
谢谢!!!!!!!!!!!
1 客户端字符集在那里配置?
就是注册表里面相应OracleHome的NLS_LANG
2 sqlworksheet和一般应用程序字符集设置有何不同?
这个东西老是有问题,俺从来不用。
3 测试2把sqlplus_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK为何sqlworksheet不能正常运行
而设置SIMPLIFIED CHINESE_CHINA.ZHS16GBK就可以
同2。
4 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 和 AMERICAN_AMERICA.ZHS16GBK有何区别?
真正的字符集只是第三部分。前面两个部分分别是国家和地区。第三部分才是字符集。所以只要第三部分一样就是可以得。前面影响提示信息是中文还是英文。
5 假设我有dba用户我如何知道服务器的字符集(我指的是SIMPLIFIED
HINESE_CHINA.ZHS16GBK这一整串,也就是说select userenv('language') from
dual; 得到的值在那个字典中)
sys.props$ 里面有记录。
SQL> select value$ from sys.props$ where name like 'NLS_CHA%';
6 在oracle8.0.5中客户端的字符集可以从注册表的nls_lang中修改即可,8.1.7的nls_lang
参数做什么用呢??
和805地一样。
新问题:
主要是不同OracleHome用的。每个OracleHome可以有自己不同的设置。
还可以在dos窗口里面自己设置,比如
set nls_lang=american_america.zhs16gbk.
这样就只影响这个窗口里面的环境变量。
hi,
环境变量的NLS_LANG实际上是三部分,就如上文所说。
的一部分NLS_LANGUAGE,
第二部分NLS_TERRITORY
第三部分字符集。
都相应在sys.props$里面有字段描述的。
例子:
SQL> select name, substr(value$,1,30) from sys.props$;
NAME SUBSTR(VALUE$,1,30)
------------------------------ ------------------------------
DICT.BASE 2
DBTIMEZONE 0:00
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8DEC
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NAME SUBSTR(VALUE$,1,30)
------------------------------ ------------------------------
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:T
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET WE8DEC
NLS_RDBMS_VERSION 8.1.7.0.0
GLOBAL_DB_NAME DEV.WORLD
EXPORT_VIEWS_VERSION 8
22 rows selected.
其实在我看来,只有字符集才有用,别的似乎都没有什么关系。不影响存储,也不影响显示(被用户的环境变量覆盖)。不是确信,请指点。
你可以试下下面的语句,我也成功的修改过字符集.在SVRGRL中执行
shutdown immediate; --a long time
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET ZHS16GBK;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER DATABASE OPEN;
alter database national character set ZHS16GBK;
SHUTDOWN IMMEDIATE;
STARTUP;
【来源】
相关文章推荐
- navicat连接oracle的错误:ora-12737:instant client light :unsupport server charater set ZHS16GBK解决办法。(oracle服务端字符集,客户端字符集,dmp备份文件字符集,or
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- 解决Oracle客户端和服务端字符集匹配问题
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- Oracle客户端的字符集与服务端字符集不同
- Linux下更改oracle客户端字符集和服务端字符集
- Oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- oracle客户端服务端字符集-解决乱码
- [转]Oracle字符集(客户端+服务端)的问题
- 查看oracle服务端字符集以及配置客户端字符集
- Linux下更改oracle客户端字符集和服务端字符集
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
- 本地同时安装oracle客户端与服务端(通过plSql连接)
- Oracle-EBS-Linux-虚拟机-服务器配置问题(解决无监听AND客户端服务器字符集不匹配问题)
- Oracle客户端无法连接服务端解决方法及步骤
- Oracle 客户端注册表字符集修改-----解决乱码 .
- 关于plsql导入pde因为字符集设置问题报错,而研究oracle服务器字符集、客户端字符集过程中发现的问题看,以及亲测的解决办法
- Oracle中文字符乱码?设置Oracle客户端字符编码与服务端一致
- 设置oracle 客户端字符集