资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

oracle怎么改字符集 Oracle字符集修改

oracle安装后怎么修改字符集

数据库字符集在创建后原则上不能更改。不过有2种方法可行。

成都创新互联公司是专业的乐陵网站建设公司,乐陵接单;提供网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行乐陵网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1. 如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。

2. 通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER DATABASE CHARACTER SET UTF8。

如何修改oracle的字符集编码

1. 备份数据库中所有用户的数据

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

# export NLS_LANG = “SIMPLIFIED CHINESE_CHINA.UTF8”

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

2. 评估UTF8转换成ZHS16GBK的风险

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

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

#sqlplus “/ as sysdab”

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

SQLexit

# $ORACLE_HOME\bin\csscan -help

可以更清楚如何使用csscan。

# $ORACLE_HOME/bin/csscan system/sunday user=mmsc FROMCHAR=UTF8 TOCHAR=ZHS16GBK ARRAY=102400 PROCESS=3 csscan.log

以上命令意思是扫描用户:mmsc中的所有数据,从字符集UTF8更改为ZHS16GBK的转换情况。然后得到三个文件:scan.txt、scan.out、scan.err。

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

3. 更改数据库的字符集为ZHS16GBK

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

Alter Database Character Set INTERNAL_CONVERT/ INTERNAL_USE XXXX

如何查看和修改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 sysdba  Connected.

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 系统上,客户端与服务器已成功连接,但是数据库表里的中文字无法显示,显示为“?”,用SQLPLUS查得服务器端的字符集为AL16uTF16,如何修改该字符集使之支持中文呢?另外oracle10G客户端的字符集需不需要设置,如何查看和设置呢?

怎么改oracle注册表的字符集编码?

通过注册表修改 \x0d\x0a HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0 \x0d\x0a NLS_LANG 改为你需要的字符集. \x0d\x0a\x0d\x0a常用字符集(暂时只收集到两个) \x0d\x0a AMERICAN_AMERICA.WE8ISO8859P1 \x0d\x0a SIMPLIFIED CHINESE_CHINA.ZHS16GBK \x0d\x0a american_america.AL32UTF8\x0d\x0a\x0d\x0a 1--------- AMERICAN_AMERICA.zhs16gbk \x0d\x0a 2--------- AMERICAN_AMERICA.utf8

如何修改Oracle数据库字符集

1、改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表

Start - Run - Rededit -|

Under registry Editor - HKEY_LOCAL_MACHINE - SOFTWARE -ORACLE-KEY_XE-RIGHT WINDOW DOUBLE CLICK NLS_LANG - CHANGE VALUE TO "AMERICAN_AMERICA.UTF8" -OK -CLOSE REGISTRY

正确设置ORACLE客户端字符集的方法:

oracle客户端字符集设置需要和服务器端一致,否则会出现乱码问题。

首先连接服务器,查询服务器端设置:

select * from v$nls_parameters;

找到:

NLS_LANGUAGE

NLS_TERRITORY

NLS_CHARACTERSET

环境变量nls_lang便是由这三部分组成

NLS_LANG = language_territory.charset

比如:

NLS_LANG = American_Japan.JA16SJIS

2、改服务器端字符集,通过ORACLE的SQL PLUS命令窗口改

在SQL*PLUS 中,以DBA登录

conn 用户名 as sysdba

然后执行以下命令

shutdown immediate; (把database停了)

startup mount; (把database重开去可更改情况)

alter system enable restricted session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open;

alter database character set utf8;

OR

alter database character set internal_use utf8;

shutdown immediate;

startup; (重开正常oracle)

ORACLE数据库字符集修改完成!

oracle 10如何修改字符集?

1.修改服务器端oracle默认字符集:打开“开始菜单”,在“运行”里输入“cmd”,回车,进入命令行编

辑模式。输入“sqlplus /nolog”,回车。修改默认字符集,以sysdba的身份执行SQL语句。输入“conn

sys/password@orcl as sysdba;”,回车。输入“select name,value$ from props$ where

name like

’%NLS%’;”,查看默认字符集。找到“NLS_CHARACTERSET”,其值为“WE8ISO8859P1”。

2.修改客户端sqlplus默认字符集:打开“开始菜单”,

在“运行”里输入“regedit”,回车,进入注册表编辑器。按CTRL+F,输入“NLS_LANG”,回车,找到sqlplus软件目录下的

NLS_LANG,其键值为“WE8ISO8859P1”。双击“NLS_LANG”,输入“ZHS16GBK”,点击“确定”按钮保存重启计算

机。


网站标题:oracle怎么改字符集 Oracle字符集修改
转载来于:http://cdkjz.cn/article/hhohsg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220