oracle怎么改字符的尺寸,关于oracle 11g 怎么更改字符集合

本文详细介绍了在Oracle 11g中如何更改数据库字符集,包括使用ALTER DATABASE CHARACTER SET命令进行转换。警告了在非超集情况下转换可能导致的错误,并提供了一个示例展示字符集查询及转换过程。同时提到了在特定模式下执行转换的必要性。

关于oracle 11g 如何更改字符集合

如题!最好来直接操作方式的,不要命令方式

还有我,我在网页中那个输sql命令的地方输入:conn / as sysdba 命令,会提示我语法错误,怎么回事,难道11g变了语法?

------最佳解决方案--------------------

-- 3.5 字符集的更改 ( P94 )

-- 数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换。也可以通过以下方式更改:

ALTER DATABASE CHARACTER SET

-- 注意修改数据库字符集时必须谨慎,修改之前一定要为数据库备份。由于不能回退这项操作,因此可能会造成数据丢失或者损坏。

-- 这是最简单的转换字符集的方式,但并不是总是有效。这个命令在Oracle 8时被引入Oracle,这个操作在本质上并不转换任何数据库字符,

-- 只是简单地更新数据库中所有跟字符集相关的信息。

-- 这意味着只能在新字符集是旧字符集严格超集的情况下使用这种方式转换。所谓超集是指当前字符集中的每一个字符集在新字符集中都可以表示,并使用相同的代码点,

-- 比如很多字符集都是US7ASCII的严格超集。

-- 如果不是超集将获得以下错误:

SQL> ALTER DATABASE CHARACTER SET ZHS16CGB231280;

*

ERROR at line 1:

ORA-12712: new character_set_must bu a superset of old character set

-- 下面来看一个测试(以下测试在Oracle 9.2.0下进行,Oracle 9i较Oracle 8i在编码方面有较大改变,在Oracle 8i中,测试结果可能略有不同):

SQL> select name, value$ from props$ where name like '%NLS%';

NAME                      VALUE$

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

NLS_LANGUAGE              AMERICAN

NLS_NCHAR_CHARACTERSET    AL16UTF16

NLS_TERRITORY             AMERICA

NLS_CURRENCY              $

NLS_ISO_CURRENCY          AMERICA

NLS_NUMERIC_CHARACTERS    .,

NLS_CHARACTERSET          AL32UTF8

NLS_CALENDAR              GREGORIAN

NLS_DATE_FORMAT           DD-MON-RR

NLS_DATE_LANGUAGE         AMERICAN

NLS_SORT                  BINARY

NLS_TIME_FORMAT           HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT      DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT        HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT   DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY         $

NLS_COMP                  BINARY

NLS_LENGTH_SEMANTICS      BYTE

NLS_NCHAR_CONV_EXCP       FALSE

NLS_RDBMS_VERSION         10.2.0.4.0

20 rows selected.

create table scott.test(id number(18,0), name varchar2(20));

insert into scott.test(id,name) values(1,'盖');

insert into scott.test(id,name) values(2,'gai');

SQL> select name, dump(name) from scott.test;

......

-- 转换字符集,数据库应该在RESTRICTED模式下进行:

C:\> sqlplus "/ as sysdba"

......

SQL> shutdown immediate;

......

SQL> startup mount;

SQL> ALTER SESSION SET SQL_TRACE=TRUE;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值