from:http://blog.csdn.net/chid/article/details/6166506

Linux 下更改 oracle 客户端字符集和服务端字符集

1.Linux 下更改 oracle 客户端字符集,即设置环境变量“ NLS_LANG“ 的值

查看客户端字符集,在终端下执行:

echo $NLS_LANG

修改客户端字符集:

sudo gedit /etc/environment

在environment 文件中增加以下内容:

NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

export NLS_LANG

重新启动操作系统即可。

2. 修改 oracle 服务端的字符集。

查看服务端字符集:

select userenv('language') from dual;

修改服务端字符集,终端下执行:

$ORACLE_HOME/bin/sqlplus /nolog

进入sqlplus 命令行

SQL>conn / as sysdba;

1 ) . 关闭数据库

SQL>SHUTDOWN IMMEDIATE;

2 ) 启动到 Mount

STARTUP MOUNT;

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 INTERNAL_USE ZHS16GBK;

-- 下面一行语句可能会出现错误提示,可以不理会

ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;

SHUTDOWN IMMEDIATE;

STARTUP;

3. 修改 dmp 文件字符集

dmp 文件的第2 第3 字节记录了字符集信息,因此直接修改dmp 文件的第2 第3 字节的内容就可以‘骗’过oracle 的检查。这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,如 US7ASCII ,WE8ISO8859P1 ,ZHS16CGB231280 ,ZHS16GBK 基本都可以改。因为改的只是dmp 文件,所以影响不大。

具体的修改方法比较多,最简单的就是直接用UltraEdit 修改dmp 文件的第2 和第3 个字节。比如想将dmp 文件的字符集改为ZHS16GBK ,可以用以下SQL 查出该种字符集对应的16 进制代码:

SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;

0354

然后将dmp 文件的2 、3 字节修改为0354 即可。

Oracle 提供标准函数,对字符集名称及 ID 进行转换 :

SQL> select nls_charset_id('ZHS16GBK') from dual;

NLS_CHARSET_ID('ZHS16GBK')

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

852

1 row selected.

SQL> select nls_charset_name(852) from dual;

NLS_CHAR

--------

ZHS16GBK

1 row selected.

十进制转换十六进制 :

SQL> select to_char('852','xxxx') from dual;

TO_CH

-----

354

Linux下更改oracle客户端字符集和服务端字符集的更多相关文章

  1. 百度文库,linux下安装oracle客户端

    linux单独安装oracle client(oracle客户端) 更新:2013-10-17 18:30 | 标签:linux oracle   1.要远程使用oracle,先下载下面三个文件,注意 ...

  2. Linux下用gSOAP开发Web Service服务端和客户端程序

    网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...

  3. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

  4. Linux下安装Oracle客户端

    1.创建用户名和组名 /usr/sbin/groupadd oinstall /usr/sbin/groupadd dba /usr/sbin/useradd -m -g oinstall -G db ...

  5. 开发手记:Linux下更改Oracle表空间大小

    问题:同事反馈我们的测试环境数据库执行SQL和编译PKG非常慢,猜测可能是我们的测试环境数据库的表空间满了,但是我不知道数据库DBA的用户和密码. 步骤1:查看表空间占用情况 SELECT UPPER ...

  6. linux下启动oracle服务命令

    以redflag(redhat /centos)linux下的 oracle 10g 为例: 如果oracle安装和配置都没有问题的话: 依次执行以下代码即可启动oracle服务. #su - ora ...

  7. Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量 ...

  8. linux下重启oracle服务:监听器和实例

    一.在Linux下重启Oracle数据库及监听器: 方法1: 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart ...

  9. Linux下进行Oracle数据库安装

    一般来说我们Windows下进行安装Oracle都很简单,但Linux下却要输入很多命令,以下的安装步骤是本人经过多次安装Linux下的Oracle经验,希望能帮到大家 一.在Linux服务器上创建o ...

随机推荐

  1. IE6/7 下:inline-block解决方案

    6/IE7下:inline-block解决方案   IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时, ...

  2. HTML中表格table边框border(1px还嫌粗)的解决方案:

    摘自:http://blog.sina.com.cn/s/blog_ae809a730102vrx8.html 第一种方法: 1.将table的属性设置为:BORDER=0 .cellspacing= ...

  3. Microservice 概念

    一天我司招财猫姐(HR 大人)问我,你给我解释一下 Microservice 是什么吧.故成此文.一切都是从一个创业公司开始的. 故事 最近的创业潮非常火爆,我禁不住诱惑也掺和了进去,创建了一家公司. ...

  4. 支持Access的数据库建模工具 EZDML

    支持Access的数据库建模工具 EZDML 下载地址:EZDML v1.5

  5. Java集合类初始容量、加载因子、扩容增量

    当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低. 加载因 ...

  6. idea中git合并切换分支等操作

    https://blog.csdn.net/autfish/article/details/52513465

  7. C++中虚函数和纯虚函数的区别与总结

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  8. truncate delete 与 drop的区别

    一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...

  9. 简单的aop实现日志打印(切入点表达式)

    Spring中可以使用注解或XML文件配置的方式实现AOP. 1.导入jar包 com.springsource.net.sf.cglib -2.2.0.jar com.springsource.or ...

  10. Ajax -- 原理及简单示例

    1. 什么是Ajax •Ajax被认为是(AsynchronousJavaScript and XML的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 2. Ajax ...