博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查看及改动Oracle编码格式方法
阅读量:4655 次
发布时间:2019-06-09

本文共 1277 字,大约阅读时间需要 4 分钟。


首先查看oracle数据库的编码
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
PARAMETER
--------------------
VALUE
--------------------
NLS_CHARACTERSET
AL32UTF8
这其来源于props$。这是表示数据库的字符集。

oracleclient编码
SQL> select * from nls_instance_parameters where parameter='NLS_LANGUAGE';
PARAMETER
--------------------
VALUE
--------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE
其来源于v$parameter,表示client的字符集的设置。可能是參数文件,环境变量或者是注冊表会话字符集环境
select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置。可能是会话的环境变量或者是alter session完毕。假设会话没有特殊的设置,将与nls_instance_parameters一致。
再来说一下怎么改动oracle的字符集:
眼下我的数据库环境的字符集是AL32UTF8,那么把它改成ZHS16GBK
1.首先以sysdba的身份登录上去 conn /as sysdba
2.关闭数据库shutdown immediate;
3.以mount打来数据库。startup mount
4.设置session 
 SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
5.启动数据库
alter database open;
6.改动字符集
ALTER DATABASE CHARACTER SET ZHS16GBK;
这会可能会报错。提示我们的字符集:新字符集必须为旧字符集的超集,这时我们能够跳过超集的检查做更改:
 ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
这条语句就能够了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证。这条语句和上面的语句内部操作时全然同样的。
7.关闭,又一次启动
SQL>shutdown immediate;
SQL> startup
当然字符集最好不要轻易改动。由于这会对数据库的数据有直接的影响,假设是生产环境的话,可能会造成不可预计得损失。

转载于:https://www.cnblogs.com/jzssuanfa/p/6884849.html

你可能感兴趣的文章
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
C语言对mysql数据库的操作
查看>>
INNO SETUP 获得命令行参数
查看>>
HTML5与CSS3权威指南之CSS3学习记录
查看>>
docker安装部署
查看>>
AVL树、splay树(伸展树)和红黑树比较
查看>>
多媒体音量条显示异常跳动
查看>>
运算符及题目(2017.1.8)
查看>>
React接入Sentry.js
查看>>
ssh自动分发密匙脚本样板
查看>>
转 小辉_Ray CORS(跨域资源共享)
查看>>
Linux安装postgresql
查看>>
MyBatis启动:MapperStatement创建
查看>>
【 全干货 】5 分钟带你看懂 Docker !
查看>>
[转]优化Flash性能
查看>>
popStar手机游戏机机对战程序
查看>>
lambda表达式树
查看>>
二次注入原理及防御
查看>>
会话记住已登录功能
查看>>