oracle查看字符集后修改oracle服务端和客户端字符集的步骤

 更新时间:2014年01月07日 14:46:01   作者:  
本文介绍了oracle server端查询字符集后,修改oracle服务端和客户端字符集的步骤,大家参考使用吧

1.oracle server端字符集查询

复制代码 代码如下:

select userenv('language') from dual;

server字符集修改

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

复制代码 代码如下:

SQL>conn /as sysdba

SQL>shutdown immediate;  

SQL>startup mount

SQL>ALTER  SYSTEM  ENABLE  RESTRICTED  SESSION;  

SQL>ALTER  SYSTEM  SET  JOB_QUEUE_PROCESSES=0;  

SQL>ALTER  SYSTEM  SET  AQ_TM_PROCESSES=0;

SQL>alter database open;  

SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK  ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

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

复制代码 代码如下:

SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;  

SQL>select * from v$nls_parameters; 

重启检查是否更改完成:

复制代码 代码如下:

SQL>shutdown immediate;

SQL>startup

SQL>select * from v$nls_parameters;

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验

这一方法在某些方面是有用处的,比如测试;应用于产品环境时大家应该小心,可能会有一些意外的问题。

2.oracle client端字符集修改

复制代码 代码如下:

$echo$NLS_LANG

client字符集修改:  

 在 /home/oracle与 /root用户目录下的.bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

 关闭当前ssh窗口。

注意:NLS_LANG变量一定要配置正确否则会引起sqlplus失效。

3.修改数据库字符集为UTF-8

1.以DBA登录

2.执行转换语句:

复制代码 代码如下:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET UTF8;

SHUTDOWN IMMEDIATE;

STARTUP;

注意:如果没有大对象,在使用过程中进行语言转换没有什么影响!

可能会出现ORA-12717:CANNOT ALTER DATABASE NATIONAL CHARACTER SET WHEN NCLOBDATAEXISTS, 解决这个问题的方法

利用INTERNAL_USE 关键字修改区域设置

复制代码 代码如下:

ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;

相关文章

  • oracle大数据删除插入方式

    oracle大数据删除插入方式

    本文介绍了在Oracle数据库中高效进行大数据插入和删除操作的方法,对于插入操作,通过并行查询可以显著提高性能;对于删除操作,使用游标和批量处理可以避免长时间锁定和资源争用,文章还提供了性能优化建议、常见问题及解决方案,并总结了在实际操作中需要注意的点
    2025-01-01
  • Linux中Oracle启动侦听报错TNS:permission denied的解决方法

    Linux中Oracle启动侦听报错TNS:permission denied的解决方法

    这篇文章主要介绍了Linux中Oracle启动侦听时报错TNS:permission denied的解决方法,文中给出了详细的解决方法,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-02-02
  • 如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)

    如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)

    这篇文章主要介绍了如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程),本文图文并茂给大家介绍的非常详细,需要的的朋友参考下吧
    2017-05-05
  • Oracle BULK COLLECT批量取数据解决方法

    Oracle BULK COLLECT批量取数据解决方法

    在oracle使用中为了提高取数据效率,本文将详细介绍Oracle BULK COLLECT批量取数据,需要了解跟多的朋友可以参考下
    2012-11-11
  • Oracle数据库查看锁表语句和解锁的方法示例

    Oracle数据库查看锁表语句和解锁的方法示例

    在DBA的日常工作中,经常遇到为Oracle用户解锁的操作,这篇文章主要给大家介绍了关于Oracle数据库查看锁表语句和解锁的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • oracle中decode函数的使用方法示例

    oracle中decode函数的使用方法示例

    这篇文章主要介绍了oracle中decode函数的使用方法示例,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • Oracle批量执行sql语句之禁用所有表的外键

    Oracle批量执行sql语句之禁用所有表的外键

    这篇文章主要介绍了Oracle批量执行sql语句之禁用所有表的外键的相关资料,需要的朋友可以参考下
    2016-01-01
  • ORACLE随机数DBMS_RANDOM包

    ORACLE随机数DBMS_RANDOM包

    这篇文章主要介绍了ORACLE随机数DBMS_RANDOM包,通过dbms_random包调用随机数的方法大致有4种,具体哪4种请看本篇文章吧
    2015-09-09
  • ORACLE数据表分析

    ORACLE数据表分析

    这篇文章介绍了ORACLE进行数据表分析的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

    Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法

    这篇文章主要为大家详细介绍了Oracle 11g安装错误提示未找到wfmlrsvcapp.ear的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论