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字符集的更改相关推荐

  1. oracle修改memory,Oracle 修改 MEMORY_TARGET

    Oracle 修改 MEMORY_TARGET,内存减小导致ORACLE启动不了,扩展内存后,按pfile启动,但sfile修改不了. 1.内存减小导致Oracle启动不了 Last login: S ...

  2. oracle 修改nls_nchar_characterset,Oracle的NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET之间的区别...

    一般来说,所有要点都是正确的. NLS_NCHAR_CHARACTERSET定义NVARCHAR2等的字符集.人.列,而NLS_CHARACTERSET用于VARCHAR2. Why is it po ...

  3. 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] 本文信息适用于任何平台 ...

  4. oracle修改分区条件,请问能不能更改已经建好的范围分区表的分区规则呢?

    请问能不能更改已经建好的范围分区表的分区规则呢? 比如:把原来的partition by range (AREA_CD, MSG_CRTE_DTS)改为partition by range (MSG_ ...

  5. Oracle修改globalname,oracle修改global_name和service_name

    安装oracle的时候会制定db_domain,制定db_domain后service_name和global_name都会加上这个domain,此时在配置tns file以及easy connect ...

  6. oracle 修改lsnrctl,ORACLE LSNRCTL密码及忘记密码处理

    Oracle lsnrctl设置密码 如何给监听器设置密码,提防被其他用户关掉监听器?以下是给监听器设置密码的步骤: 进入LSNRCTL: 1.设置监听器的口令.默认口令为空. LSNRCTL> ...

  7. oracle 修改lsnrctl,Oracle中 lsnrctl命令使用总结(推荐)

    Oracle监听服务lsnrctl参数及查询状态详解,常用参数. 在命令行中先输入lsnrctl,进入以下页面 1.status 显示监听器的状态.命令显示监听器是不是活动的,日志与跟踪文件的位置,监 ...

  8. oracle修改filesystem,oracle数据库 boost::filesystem使用例子

    oracle数据库 boost::filesystem 使用例子 #include #include #include #include using namespace boost::filesyst ...

  9. oracle修改日历,oracle 日历

    以下是从网上找到的相应的 oracle日历的sql并进行了改造可以生成任意一段时间内的日历. create table calendar ( statis_month number(6), -- 统计 ...

  10. 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 ...

最新文章

  1. 动态参数与静态参数的判断、修改
  2. WPF-009:WPF窗体的拖动
  3. 二进制的mysql怎么装_使用二进制演示MySQL安装步骤
  4. 计算机视觉基础:图像处理(上)
  5. .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
  6. 前端开发者的福音!通过拖拽就可生成Vue代码的平台来了!
  7. QT每日一练day15:QColorDialog颜色对话框
  8. 【SQLSERVER】处理一对多标签的语法糖
  9. Security+ 学习笔记57 安全意识和培训
  10. mysql字段分隔符拆分_MySQL——字符串拆分(含分隔符的字符串截取)
  11. 医疗行业的信息化建设
  12. CAXA图文档2007服务器端,caxa电子图板2007
  13. 在Storyboard中设置borderColor
  14. WITH AS 子查询
  15. AdaBoost.M1算法
  16. 【重磅】镭速云传企业版今天上线啦!
  17. 芸芸众生中的一个过客
  18. jquery限制只能输入英文逗号和数字
  19. 页面预加载loading动画,再载入内容
  20. 微信骗子 QQ7492593 电话 18627650031 这个骗子骗我4000块钱

热门文章

  1. stringbuffer_StringBuffer的存在的含义
  2. java cr_WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载
  3. 如何在Java中将String转换为int
  4. solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer
  5. 使用Spring Data R2DBC进行异步RDBMS访问
  6. OpenLiberty:注入时出错,适用于TomEE和Wildfly
  7. http缓存管理器_小心缓存管理器
  8. cyclicbarrier_Java并发– CyclicBarrier示例
  9. sts-bundle的使用_使用WS-Trust / STS采样器扩展JMeter
  10. 与Selenium的集成测试