oracle编码格式从utf-8转换为GBK


oracle从linux迁移到windows,linux中oracle的字符集是GBK,windows中oracle的字符集是utf-8,导入dmp语句时,一个汉字被认为三个字节,报字符长度不够。


结合上网搜到的资料,将oracle数据库的编码格式,从utf-8改为GBK后,一切正常了。
附:PLSQL执行记录:
---------------------------
Microsoft Windows [版本 6.0.6002]
版权所有 (C) 2006 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 9月 3 11:39:04 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn / as sysdba

(ora-12560错误,可以先cd到服务端bin目录下再执行,详细的参考文章下面)

已连接。
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup mount;
ORACLE 例程已经启动。

Total System Global Area  778387456 bytes
Fixed Size                  1374808 bytes
Variable Size             377488808 bytes
Database Buffers          394264576 bytes
Redo Buffers                5259264 bytes
数据库装载完毕。
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 internal_use zhs16gbk;

数据库已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  778387456 bytes
Fixed Size                  1374808 bytes
Variable Size             377488808 bytes
Database Buffers          394264576 bytes
Redo Buffers                5259264 bytes
数据库装载完毕。
数据库已经打开。
SQL>
---------------------------

查看编码格式:

select userenv('language') from dual;

select * from nls_database_parameters


windows下 sqlplus / as sysdba 报ora-12560的终极解决方法

本文是原创文章,转载请注明出处:http://blog.csdn.net/msdnchina/article/details/38169095


windows下,sqlplus / as sysdba经常报 ORA-12560: TNS:protocol adapter error,解决这个报错,有多个方法:

1.确认windows注册表中的ORACLE_HOME 键及其 键值 是正确的,是有效的
 比如:HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb10g_home1下,找到ORACLE_HOME 键,对应的键值为H:\oracle\product\10.2.0\db_1 ,其实正确的键值为F:\oracle\product\10.2.0\db_1

--->注意:windows下,请不要设置ORACLE_HOME环境变量,详细请见我翻译的文章:

http://blog.csdn.net/msdnchina/article/details/38010025

--->注意:windows下的注册表存储的ORACLE_HOME 键 和  ORACLE_SID 键相当于unix下的.profile中定义的ORACLE_HOME,ORACLE_SID等环境变量---该说法纯属我个人的总结。


2确保windows 服务里变的OracleServiceXXX服务是已启动状态。

  关于OracleServiceXXX 和 Oracle 实例的关系,请见我写的文章:

    http://blog.csdn.net/msdnchina/article/details/38011055


3.cmd下,cd到 F:\oracle\product\10.2.0\db_1\bin下,再敲sqlplus / as sysdba
[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 注意,不是cd到F:\oracle\product\10.2.0\client_1\bin。也就是说cd到 oracle数据库软件的服务器端,不是cd到oracle数据库软件的客户端。  

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. --->注意:windows的cmd下,敲一个命令,windows对该命令的查找顺序为:首先找当前目录下有无该命令,其次再到PATH路径下找有无该命令。  

4.cmd下,set ORACLE_SID=你想进入的数据库的那个sid


5.cmd下,cd到 F:\oracle\product\10.2.0\db_1\bin下,再敲sqlplus /@网络服务名 as sysdba


[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 注意,不是cd到F:\oracle\product\10.2.0\client_1\bin。也就是说cd到 oracle数据库软件的服务器端,不是cd到oracle数据库软件的客户端。  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值