网站首页 > 文章中心 > 其它

oracle怎么修改编码

作者:小编 更新时间:2023-09-06 14:16:29 浏览量:45人看过

oracle字符集编码怎么修改

oracle数据库的字符集更改

A、oracle server 端 字符集查询

select userenv('language') from dual

其中NLS_CHARACTERSET 为server端字符集

oracle怎么修改编码-图1

NLS_LANGUAGE 为 server端字符显示形式

B、查询oracle client端的字符集

$echo $NLS_LANG

如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集.如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题.

C、server端字符集修改

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

SQL

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

SQL conn /as sysdba

Connected.

SQL shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL startup mount

ORACLE instance started.

Database mounted.

SQL ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL alter database open;

Database altered.

*

ERROR at line 1:

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

SQL select * from v$nls_parameters;

重启检查是否更改完成:

SQL startup

Database opened.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

D、client端字符集修改

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

关闭当前ssh窗口.

怎样更改oracle的编码方式

如何更改Oracle字符集

对于子集到超集的转换,Oracle是允许的,但是对于超集到子集的转换是不允许的.一般对于超集到子集的转换,建议是通过dbca删除原来的数据库,重新再建库,选择正确的字符集,然后导入备份.

① 备份数据库中所有用户的数据

以oracle用户登陆,执行以下命令

保持与数据库服务器端一致,这样在exp导出时,就不会存在字符的转换了,备份最原始的数据.

转换之前,要使用Oracle的csscan工具对数据库扫描,评估字符集转换前后,数据有可能的损坏情况.如果评估情况糟糕,那就绝对要放弃了.

先安装属于 CSMIG 用户的一套表和过程.以oracle用户登陆UNIX,

#sqlplus "/ as sysdab"

SQL@$ORACLE_HOME/ rdbms/admin/csminst.sql

SQLexit

# $ORACLE_HOME\bin\csscan -help

可以更清楚如何使用csscan.

查看scan.out,scan.err,可以看出mmsc用户下的所有的数据都是可以转换的,并且没有出现转换"Exceptional"的情况,所以呢可以更放心一点.

前面说过,通过命令"Alter Database Characeter Set XXXX",实现从超集到子集的转换,在Oracle是不允许的.但是该命令,提供这样的命令方式:

Alter Database Character Set INTERNAL_CONVERT/ INTERNAL_USE XXXX

这是Oracle的非公开命令."在使用这个命令时,Oracle会跳过所有子集及超集的检查,在任意字符集之间进行强制转换,所以,使用这个命令时你必须十分小心,你必须清楚这一操作会带来的风险".

以oracle用户登陆UNIX,

#sqlplus "/ as sysdba"

SQL SHUTDOWN IMMEDIATE;

SQL STARTUP MOUNT;

SQL ALTER SESSION SET SQL_TRACE=TRUE;

SQL ALTER DATABASE OPEN;

//如果不使用"INTERNAL_USE"参数,系统会提示出错:

//ERROR at line 1:

SQL ALTER SESSION SET SQL_TRACE=FALSE;

SQL STARTUP;

此时,检查一下数据库的字符集是否更改过来

SQL select value$ from props$ where name='NLS_CHARACTERSET';

VALUE$

-----------------

紧接着检查一下数据库中简体中文、繁体中文是否正常,不会出现乱码.

SQLselect spid,spname,spshortname from spinfovisual_hk

......

非常不幸,我看到了一堆乱码,这也证明了Oracle不支持字符集从超集到子集的更改,当时心里很紧张,很怕失败,从而恢复到原样.

还是以oracle用户登陆UNIX, 先删除库中的用户mmsc:

SQLdrop user mmsc cascade;

再运行createuser.sql,生成mmsc用户.

然后使用原来的备份文件,导入到mmsc用户中:

马上查看数据库中简体、繁体中文,哈哈,没有乱码了,一切显示正常.

oracle数据库怎么修改编码格式utf-8

以下内容为固定写法,可以修改数据库编码格式.

第一步:通过系统管理员权限登录数据库.

sql conn / as sysdba;

第二步:关闭数据库和实例连接.

sql shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

第三步:启动数据库实例连接.

sql startup mount;

oracle instance started.

database mounted.

第四步:限制其它用户连接数据库使用资源.

sql alter system enable restricted session;

system altered.

第五步:设置作业进行为0个.

sql alter system set job_queue_processes=0;

第六步:设置启动时间管理器的数量为0

sql alter system set aq_tm_processes=0;

第七步:打开数据库连接

sql alter database open;

database altered.

第八步:修改需要的编码格式

sql alter database character set internal_use GBK;

第九步:关闭连接.

第十步:启动oracle进程.

sql startup;

如何修改oracle的字符集编码

如何查看及修改oracle编码格式方法?

查看及修改oracle编码格式方法:

①.、查看oracle数据库字符集:

select userenv('language') from dual;

查询结果:

以上就是土嘎嘎小编为大家整理的oracle怎么修改编码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章