oracle查看编码格式以及修改字符集编码
  1. 查看oracle数据库的编码集
    客户端字符集环境select   *   from   nls_instance_parameter,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
    会话字符集环境   select   *   from   nls_session_parameter,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter   session完成,如果会话没有特殊的设置,将与nls_instance_parameter一致。
     客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter   session>环境变量>注册表>参数文件     
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
这其来源于props$,这是表示数据库的字符集。
SQL> select * from nls_database_parameters;
PARAMETER
--------------------
VALUE
--------------------
NLS_CHARACTERSET
AL32UTF8
oracle客户端编码,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表会话字符集环境
select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
SQL> select * from nls_instance_parameters where parameter='NLS_LANGUAGE';

PARAMETER
--------------------
VALUE
--------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

2.修改字符集编码

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端字符集修改

*****************************************************************

*  更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK)            *

*****************************************************************

目前我的数据库环境的字符集是AL32UTF8,那么把它改成ZHS16GBK
1.首先以sysdba的身份登录上去 conn /as sysdba
2.关闭数据库shutdown immediate;
3.以mount打来数据库,startup mount
4.设置session 

将数据库启动到RESTRICTED模式下做字符集更改:

SQL> conn /as sysdba

--sysdba的身份登录上去 conn /as sysdba

SQL> shutdown immediate;

SQL> startup mount

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL> alter database open; --启动数据库

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; --修改字符集

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

这会可能会报错,提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

这条语句就可以了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证,这条语句和上面的语句内部操作时完全相同的。
SQL>shutdown immediate; -- 关闭,重新启动
SQL> startup
SQL> select * from v$nls_parameters;

client端字符集修改

在 /home/oracle与 /root用户目录下的.bash_profile中

添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

PS:当然字符集最好不要轻易修改,因为这会对数据库的数据有直接的影响,如果是生产环境的话,可能会造成不可估计得损失。

下面提供三种解决方法: 
(1) 服务器端重新安装ORACLE 
这种情况仅仅使用于空库和具有同一种字符集的数据。 
(2)强行修改服务器端ORACLE当前字符集 
在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改: 
SQL > create database character set US7ASCII 
* create database character set US7ASCII 
ERROR at line 1: 
ORA-01031: insufficient privileges 
你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上 
ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数 
据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE 
数据库,在sql>命令提示符下,运行select * from V$NLS_PARAMETERS,可以看 
到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正 
确显示。 
(3)利用数据格式转储,避开字符集限制 
这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下: 
先将数据加载到具有相同字符集的服务器上,然后用转换工具卸出为 
foxbase 格式或access格式数据库,再用转换工具转入到不同字符集的ORACLE数 
据库中,这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象 
power builder5.0以上版本提供的pipeline,Microsoft Access数据库提供的数 
据导入/导出功能 等。转换方法参见有关资料说明。

oracle查看编码格式以及修改字符集编码相关推荐

  1. ubuntu如何修改字符集编码

    系统支持编码的修改如下: 1. 使用如下命令查看系统支持的字符集cat /usr/share/i18n/SUPPORTED说明:查看系统支持的字符集,你需要注意的是支持字符集的格式,如对中文会有以下一 ...

  2. 修改 oracle 字符 zhs,oracle11g 修改字符集ZHS16GBK

    查看当前字符集SQL语句: select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; 修改字符集操作如下,首 ...

  3. 如何查看linux系统的字符集,Linux系统查看字符集和修改字符集(以CentOS为例)

    一.查看字符集 Linux字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下四种方式: 第一种: [root@Testa-www tmp]# ec ...

  4. Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)

    2019独角兽企业重金招聘Python工程师标准>>> 一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +------ ...

  5. Linux下MySQL5.6的修改字符集编码为UTF8

    一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+---------------- ...

  6. Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

    一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+---------------- ...

  7. oracle 查看服务器密码修改,如何修改oracle用户密码

    修改oracle用户密码的方法:首先连接oracle数据库所在服务器,并进入oracle控制台:然后输入"select username from dba_users"查看用户列表 ...

  8. oracle查询空的时间,ORACLE 查看用户密码修改时间

    前几天在给客户培训过程中,有一客户问到能否查看某一用户的密码修改时间,这样可以减少很多不必要的纠纷,大致研究了一下. 1.当前数据库版本为 SQL> select * from v$versio ...

  9. oracle查看数据库字符编码,oracle 查看、批改字符集编码

    当前位置:我的异常网» 数据库 » oracle 查看.批改字符集编码 oracle 查看.批改字符集编码 www.myexceptions.net  网友分享于:2013-07-19  浏览:3次 ...

最新文章

  1. rhel6多台主机的HA集群,并实现增加仲裁盘和共享存储
  2. 简述Docker镜像、容器、仓库概念
  3. smartgwt_高级SmartGWT教程,第1部分
  4. IOS设计模式之二(门面模式,装饰器模式)
  5. python 时间函数 毫秒_利用python进行播放音频与录音,骚操作!
  6. 华为鸿蒙系统学习笔记5-华为方舟编译器正式开源及相关源码下载
  7. tomcat基础架构剖析
  8. mysql sql执行cmd命令行_命令行执行MySQL的sql文件
  9. 马云自评英语水平;支付宝推刷脸支付;苹果研发基带芯片 | 极客头条
  10. hadoop单击模式环境搭建
  11. 如何使用Burp Suite代理
  12. IPSEC VXN在PPPoE对端配置方案
  13. mysql mgr监控_6. MySQL组复制(MGR)全解析 Part 6 监控MySQL组复制
  14. CSS面试题汇总(三)
  15. 网红王思聪数字屏保下载
  16. cefsharp修改html元素,CefSharp网页元素点击
  17. Matlab 绘制 BP 神经网络图
  18. Appium移动自动化测试(四)--先跑起来再说(第一个测试用例-手机YY)
  19. 2022 最新华为面经分享:Java 高分面试指南
  20. 小红书618品牌营销蓄水阶段告一段落,5月即将进入冲刺期

热门文章

  1. 分奇偶页后Word导出PDF目录页后多了空白页
  2. apache无法解析php文件,显示php源码或直接下载文件
  3. 微信小程序开发引入vant框架(步骤详细,供学习的同学们参考)
  4. 【操作系统】生产者消费者问题实现
  5. 论文阅读:基于区块链的分布式软件定义车载网络一种深度q -学习方法
  6. 通过按钮让号码自动回填到输入框
  7. html边框直线,在网页中实现细线边框的两种方法-网页设计,HTML/CSS
  8. linux定时执行shell脚本
  9. dede中list标签php,dedecms标签:list标签使用大全
  10. C语言 荷兰国旗解法