oracle 修改nls_characterset,ORACLE NLS_CHARACTERSET字符集的更改
ORACLE NLS_CHARACTERSET字符集的更改 数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换。 我们也可以通过以下方式更改 ALTER DATABASE CHARACTER SET 注意:修改数据库字符集时必须谨慎,修改之前一定要为数据库备份。由于不能回退这项操作,因此可能会造成数据丢失或者损坏。 这是最简单的转换字符集的方式,但并不总是有效。 这个命令在Oracle8时被引入Oracle,这个操作在本质上并不转换任何数据库字符,只是简单的更新数据库中所有跟字符集相关的信息。 这意味着,你只能在新字符集是旧字符集严格超集的情况下使用这种方式转换。 所谓超集是指: 当前字符集中的每一个字符在新字符集中都可以表示,并使用同样的代码点 比如很多字符集都是US7ASCII的严格超集。 如果不是超集,将获得以下错误: SQL> ALTER DATABASE CHARACTER SET ZHS16CGB231280; ALTER DATABASE CHARACTER SET ZHS16CGB231280 * ERROR at line 1: ORA-12712: new character set must be a superset of old character set 下面我们来看一个测试(以下测试在Oracle9.2.0下进行,Oracle9i较Oracle8i在编码方面有较大改变,在Oracle8i中,测试结果可能略有不同): SQL> select name,value$ from props$ where name like '%NLS%'; NAME VALUE$ ------------------------------ ------------------------------ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET US7ASCII NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN …… NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_RDBMS_VERSION 9.2.0.4.0 20 rows selected. SQL> select name,dump(name) from eygle.test; NAME DUMP(NAME) ------------------------------------------------------ 测试 Typ=1 Len=4: 178,226,202,212 Test Typ=1 Len=4: 116,101,115,116 2 rows selected.
转换字符集,数据库应该在RESTRICTED模式下进行。 c:\>sqlplus “/ as sysdba” SQL*Plus: Release 9.2.0.4.0 - Production on Sat Nov 1 10:52:30 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options JServer Release 9.2.0.4.0 - Production SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP MOUNT; ORACLE instance started. Total System Global Area 76619308 bytes Fixed Size 454188 bytes Variable Size 58720256 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SESSION SET SQL_TRACE=TRUE; Session altered. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL> ALTER DATABASE OPEN; Database altered. SQL> set linesize 120 SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12721: operation cannot execute when other sessions are active SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists 在Oracle9i中,如果数据库存在CLOB类型字段,那么就不允许对字符集进行转换 SQL>
oracle 修改nls_characterset,ORACLE NLS_CHARACTERSET字符集的更改相关推荐
- oracle修改memory,Oracle 修改 MEMORY_TARGET
Oracle 修改 MEMORY_TARGET,内存减小导致ORACLE启动不了,扩展内存后,按pfile启动,但sfile修改不了. 1.内存减小导致Oracle启动不了 Last login: S ...
- oracle 修改nls_nchar_characterset,Oracle的NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET之间的区别...
一般来说,所有要点都是正确的. NLS_NCHAR_CHARACTERSET定义NVARCHAR2等的字符集.人.列,而NLS_CHARACTERSET用于VARCHAR2. Why is it po ...
- oracle 修改 dbid,Oracle 在使用NID更改DBID时ORA-01122 ORA-01110 ORA-01206
适用于: Oracle Database – Enterprise Edition – 版本9.0.1.4 到 10.1.0.2 [Release 9.0.1 to 10.1] 本文信息适用于任何平台 ...
- oracle修改分区条件,请问能不能更改已经建好的范围分区表的分区规则呢?
请问能不能更改已经建好的范围分区表的分区规则呢? 比如:把原来的partition by range (AREA_CD, MSG_CRTE_DTS)改为partition by range (MSG_ ...
- Oracle修改globalname,oracle修改global_name和service_name
安装oracle的时候会制定db_domain,制定db_domain后service_name和global_name都会加上这个domain,此时在配置tns file以及easy connect ...
- oracle 修改lsnrctl,ORACLE LSNRCTL密码及忘记密码处理
Oracle lsnrctl设置密码 如何给监听器设置密码,提防被其他用户关掉监听器?以下是给监听器设置密码的步骤: 进入LSNRCTL: 1.设置监听器的口令.默认口令为空. LSNRCTL> ...
- oracle 修改lsnrctl,Oracle中 lsnrctl命令使用总结(推荐)
Oracle监听服务lsnrctl参数及查询状态详解,常用参数. 在命令行中先输入lsnrctl,进入以下页面 1.status 显示监听器的状态.命令显示监听器是不是活动的,日志与跟踪文件的位置,监 ...
- oracle修改filesystem,oracle数据库 boost::filesystem使用例子
oracle数据库 boost::filesystem 使用例子 #include #include #include #include using namespace boost::filesyst ...
- oracle修改日历,oracle 日历
以下是从网上找到的相应的 oracle日历的sql并进行了改造可以生成任意一段时间内的日历. create table calendar ( statis_month number(6), -- 统计 ...
- oracle修改open_cursors,oracle open_cursors
先备份一下 C:\oracle\product\10.2.0\db_2\dbs SPFILEIDMP.ORA alter system set open_cursors=600 scope=spfil ...
最新文章
- 动态参数与静态参数的判断、修改
- WPF-009:WPF窗体的拖动
- 二进制的mysql怎么装_使用二进制演示MySQL安装步骤
- 计算机视觉基础:图像处理(上)
- .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
- 前端开发者的福音!通过拖拽就可生成Vue代码的平台来了!
- QT每日一练day15:QColorDialog颜色对话框
- 【SQLSERVER】处理一对多标签的语法糖
- Security+ 学习笔记57 安全意识和培训
- mysql字段分隔符拆分_MySQL——字符串拆分(含分隔符的字符串截取)
- 医疗行业的信息化建设
- CAXA图文档2007服务器端,caxa电子图板2007
- 在Storyboard中设置borderColor
- WITH AS 子查询
- AdaBoost.M1算法
- 【重磅】镭速云传企业版今天上线啦!
- 芸芸众生中的一个过客
- jquery限制只能输入英文逗号和数字
- 页面预加载loading动画,再载入内容
- 微信骗子 QQ7492593 电话 18627650031 这个骗子骗我4000块钱
热门文章
- stringbuffer_StringBuffer的存在的含义
- java cr_WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载
- 如何在Java中将String转换为int
- solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer
- 使用Spring Data R2DBC进行异步RDBMS访问
- OpenLiberty:注入时出错,适用于TomEE和Wildfly
- http缓存管理器_小心缓存管理器
- cyclicbarrier_Java并发– CyclicBarrier示例
- sts-bundle的使用_使用WS-Trust / STS采样器扩展JMeter
- 与Selenium的集成测试