oracle字符集怎么看 查看oracle字符集编码

怎样察看oracle数据库的字符集Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容 , 接下来救让我们一起来了解一下这部分内容 。
A、oracle server 端字符集查询select userenv('language') from dual其中NLS_CHARACTERSET 为server端字符集NLS_LANGUAGE 为 server端字符显示形式
B、查询oracle client端的字符集$echo $NLS_LANG如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集 。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题 。
C、server端字符集修改将数据库启动到RESTRICTED模式下做字符集更改:SQL conn /as sysdbaConnected.SQL shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL startup mountORACLE instance started.Total System Global Area 236000356 bytesFixed Size451684 bytesVariable Size201326592 bytesDatabase Buffers33554432 bytesRedo Buffers667648 bytesDatabase mounted.SQL ALTER SYSTEM ENABLE RESTRICTED SESSION;System altered.SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;System altered.SQL ALTER SYSTEM SET AQ_TM_PROCESSES=0;System altered.SQL alter database open;Database altered.SQL ALTER DATABASE CHARACTER SET ZHS16GBK;ALTER DATABASE CHARACTER SET ZHS16GBKERROR at line 1:ORA-12712: new character set must be a superset of old character set提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:SQL ALTER DATABASE character set INTERNAL_USE ZHS16GBK;Database altered.SQL select * from v$nls_parameters;略19 rows selected.重启检查是否更改完成:SQL shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL startupORACLE instance started.Total System Global Area 236000356 bytesFixed Size451684 bytesVariable Size201326592 bytesDatabase Buffers33554432 bytesRedo Buffers667648 bytesDatabase mounted.Database opened.SQL select * from v$nls_parameters;略19 rows selected.我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的 , 也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验 。这一方法在某些方面是有用处的 , 比如测试;应用于产品环境大家应该格外小心 , 除了你以外 , 没有人会为此带来的后果负责 。结语(我们不妨再说一次):对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!这就要求我们,在进行任何可能对数据库结构发生改变的操作之前 , 先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训 。
D、client端字符集修改在 /home/oracle与 /root用户目录下的 。bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句
希望可以帮到您,谢谢!
oracle如何查看客户端的字符集?查看数据库字符集oracle字符集怎么看,涉及三方面oracle字符集怎么看的字符集oracle字符集怎么看:
查询oracle server端的字符集 :比较直观的查询方法是以种: SQLselectuserenv(‘language’) from dual; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK
如何查询dmp文件的字符集 :用oracle的exp工具导出的dmp文件也包含oracle字符集怎么看了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集 。如果dmp文件不大 , 比如只有 几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集: SQL select nls_charset_name(to_number('0354','xxxx')) from dual; 如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上): cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6 ,然后用上述SQL也可以得到它对应的字符集 。
查询oracle client端的字符集:在windows平台下,就是注册表里面相应OracleHome的NLS_LANG 。还可以在dos窗口里面自己设置,比如:set nls_lang=AMERICAN_AMERICA.ZHS16GBK,这样就只影响这个窗口里面的环境变量 。在unix平台下,就是环境变量NLS_LANG 。
如何查看和修改Oracle数据库服务器端的字符集?A、oracle server 端字符集查询
select userenv('language') from dual
其中NLS_CHARACTERSET 为server端字符集
NLS_LANGUAGE 为 server端字符显示形式
B、查询oracle client端的字符集
$echo $NLS_LANG
如果发现你select 出来的数据是乱码oracle字符集怎么看,请把client端的字符集配置成与linux操作系统相同的字符集 。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题 。
C、server端字符集修改
将数据库启动到RESTRICTED模式下做字符集更改:
SQL conn /as sysdbaConnected.
SQL shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集 。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题 。
. 1.oracle server端字符集查询复制代码代码如下:select userenv('language') from dual;server字符集修改:将数据库启动到RESTRICTED模式下做字符集更改:??
oracle10g服务器端是安装在AIX 6.0系统上,客户端是安装在windows server 2008 系统上,客户端与服务器已成功连接 , 但是数据库表里的中文字无法显示,显示为“oracle字符集怎么看?”,用SQLPLUS查得服务器端的字符集为AL16uTF16,如何修改该字符集使之支持中文呢?另外oracle10G客户端的字符集需不需要设置,如何查看和设置呢?
如何查看oracle数据库字符集数据库服务器字符集select * from nls_database_parameters,其来源于props$ , 是表示数据库的字符集 。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件 , 环境变量或者是注册表
会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置 , 可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致 。
客户端的字符集要求与服务器一致 , 才能正确显示数据库的非Ascii字符 。如果多个设置存在的时候,alter session环境变量注册表参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文 。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk 。
涉及三方面的字符集 ,
1. oracel server端的字符集;
2. oracle client端的字符集;
【oracle字符集怎么看 查看oracle字符集编码】3. dmp文件的字符集 。
在做数据导入的时候,需要这三个字符集都一致才能正确导入 。
2.1 查询oracle server端的字符集
有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:
SQL select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQLselect userenv(‘language’) from dual;
AMERICAN _ AMERICA. ZHS16GBK
2.2 如何查询dmp文件的字符集
用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集 。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容 , 如0354,然后用以下SQL查出它对应的字符集:
SQL select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
如果dmp文件很大,比如有2G以上(这也是最常见的情况) , 用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
然后用上述SQL也可以得到它对应的字符集 。
2.3 查询oracle client端的字符集
在windows平台下,就是注册表里面相应OracleHome的NLS_LANG 。还可以在dos窗口里面自己设置,
比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量 。
在unix平台下,就是环境变量NLS_LANG 。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现server端与client端字符集不一致 , 请统一修改为同server端相同的字符集 。
补充:
(1).数据库服务器字符集
select * from nls_database_parameters
来源于props$,是表示数据库的字符集 。
(2).客户端字符集环境
select * from nls_instance_parameters
其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
(3).会话字符集环境
select * from nls_session_parameters
来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致 。
(4).客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符 。
如果多个设置存在的时候,NLS作用优先级别:Sql functionalter session环境变量或注册表 参数文件 数据库默认参数
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文 。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk 。
如何查看oracle 客户端字符集1. 客户端字符集环境
select * from nls_instance_parameters
2. 会话字符集环境:
select * from nls_session_parameters
3. 查询oracle client端的字符集 :
a. 在windows平台下,就是注册表里面相应OracleHome的NLS_LANG , 或者系统环境变量中 。
还可以在dos窗口里面自己设置,比如:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量 。
b.在unix平台下 , 就是环境变量NLS_LANG 。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如何查询ORACLE都支持哪些字符集用以下命令查看oracle字符集:
select userenv('language') from dual;
查询结果:
其中:SIMPLIFIED CHINESE代表简体中文 。
字符集则为:ZHS16GBK
关于oracle字符集怎么看和查看oracle字符集编码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读