PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验

一、问题现象及解决方法

现象:

1.PL/SQL 无法登录64位数据库

2.在PL/SQL developer中输入中文,保存后,中文变成‘??‘这样的乱码符号

3.导入带有中文的数据后,中文数据变成‘??‘这样的乱码符号

环境:

1.windows7 64位系统

2.oracle11g 64位系统

3.PL/SQL developer 9.0

解决方法:

1.下载windows32位的instantclient包,并放到某个目录下,假设D:\instantclient

2.拷贝D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN到D:\instantclient下

(假设oracle11g安装目录是D:\App\Administrator\Product\11.2.0\dbhome_1\)

3.把tnsnames.ora文件放到D:\instantclient\Network\Admin目录下

4.把D:\instantclient加到操作系统的Path路径的最前面。

5.增加系统环境变量TNS_ADMIN变量的值为D:\instantclient

6.PL/SQL Developer的工具首选项的Oracle主目录名为D:\instantclient,OCI库为D:\instantclient\OCI.DLL

7.核对Oracle11g的字符集和操作系统的字符集是否一致,一致才不会乱码,假设需一致为ZHS16GBK。

8.如果Oracle11g字符集不是ZHS16GBK,修改oracle11g的字符集为ZHS16GBK

9.增加操作系统环境变量NLS_LANG变量的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK或AMERICAN.ZHS16GBK

二、经验教训

网络上对于此类问题,大多也是这么解决的。我按照网络上的方法试了很多次,还重装过几次Oracle,折腾很久最终才解决了乱码问题。

之所以折腾很久,是因为验证方法上出现了失误,在问题解决之前,我一直觉得要把之前输入的中文变成的‘????‘,使之再次变成中文才算解决问题,

实际上再次录入中文,保存后不变成‘???’即解决乱码问题,所以细节很重要。有的时候,在普遍的方法都是一样的方法的时候,那么这种方法应该是奏效的,至于一次次   的操作后,还没解决问题,应该冷静的想想操作过程,想想细节,问题可能就出在操作细节上,验证方法上。

三、相关知识

1、如何查看windows操作系统当前使用的字符集

Chcp

显示活动控制台代码页数量,或更改该控制台的活动控制台代码页。如果在没有参数的情况下使用,则 chcp 显示活动控制台代码页的数量。

语法

chcp [nnn]

参数

指定代码页。下表列出了所有支持的代码页及其国家(地区)或者语言:

代码页       国家(地区)或语言

437          美国

708          阿拉伯文(ASMO 708)

720          阿拉伯文(DOS)

850          多语言(拉丁文 I)

852          中欧(DOS) - 斯拉夫语(拉丁文 II)

855          西里尔文(俄语)

857          土耳其语

860          葡萄牙语

861          冰岛语

862          希伯来文(DOS)

863          加拿大 - 法语

865          日耳曼语

866          俄语 - 西里尔文(DOS)

869          现代希腊语

874          泰文(Windows)

932          日文(Shift-JIS)

936          中国 - 简体中文(GB2312)

949          韩文

950          繁体中文(Big5)

1200         Unicode

1201         Unicode (Big-Endian)

1250         中欧(Windows)

1251         西里尔文(Windows)

1252         西欧(Windows)

1253         希腊文(Windows)

1254         土耳其文(Windows)

1255         希伯来文(Windows)

1256         阿拉伯文(Windows)

1257         波罗的海文(Windows)

1258         越南文(Windows)

20866        西里尔文(KOI8-R)

21866        西里尔文(KOI8-U)

28592        中欧(ISO)

28593        拉丁文 3 (ISO)

28594        波罗的海文(ISO)

28595        西里尔文(ISO)

28596        阿拉伯文(ISO)

28597        希腊文(ISO)

28598        希伯来文(ISO-Visual)

38598        希伯来文(ISO-Logical)

50000        用户定义的

50001        自动选择

50220        日文(JIS)

50221        日文(JIS-允许一个字节的片假名)

50222        日文(JIS-允许一个字节的片假名 - SO/SI)

50225        韩文(ISO)

50932        日文(自动选择)

50949        韩文(自动选择)

51932        日文(EUC)

51949        韩文(EUC)

52936        简体中文(HZ)

65000        Unicode (UTF-7)

65001        Unicode (UTF-8)

在Windows平台下,直接在命令行中,输入以下命令,就会显示windows操作系统当前使用的字符集:

chcp

影响Oracle数据库字符集最重要的参数是NLS_LANG参数。

它的格式如下: NLS_LANG = language_territory.charset

它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。

其中:

Language: 指定服务器消息的语言, 影响提示信息是中文还是英文

Territory: 指定服务器的日期和数字格式,

Charset:  指定字符集。

如:AMERICAN _ AMERICA. ZHS16GBK

从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。

所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

怎么查看数据库版本

select * from v$version   包含版本信息,核心版本信息,位数信息(32位或64位)等 

2、查看数据库字符集

数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

查询oracle server端的字符集

有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:

SQL> select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)

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

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

时间: 2024-12-23 20:33:24

PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验的相关文章

Win8.1OS64位oracle11安装配置及PL/SQL Developer如何连接64位oracle

Oracle 为什么选择oracle 1.oracle能够在主流的平台上运行,而相对于sql server只支持windows,而windows在wr手里攥着呢,所以你懂的.在安全性上来讲,很多地方oracle和linux就是个不错的选择: 2.支持的连接模式上,oracle能够支持oledb,jdbc,oci等标准进行连接. 3.从80年代起,oracle开始了oracle6的发布.用户群庞大加上多年coder的开发的经验,可以说是历经磨练. 与其他数据库的比较 Oracle11的安装 最新下

PL/SQL Developer如何连接64位的Oracle图解

由于硬件技术的不断更新,Win7系统逐渐成为主流,而且计算机内存逐渐增大,为了充分的利用内存资源(因为32为系统最多只能用到3G左右的内存),提高系统性能,很多人开始使用Win7(64Bit)的系统.在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他途径来完成.下面就来说明如何实现连接. 一.下载Oracle客户端 下载地址:http://www.orac

[Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决

配置环境 Oracle服务端oracle_winx64_12c_database.iso Oracle客户端instantclient-basiclite-nt-12.1.0.1.0.zip 集成开发环境PL/SQL Developer 10.0.5.1710 配置步骤 确保 Oracle 已经完成配置,并可以使用 SQL Plus 登陆成功. 如果使用 PL/SQL 登陆 Oracle 失败,错误提示如下: 登陆失败原因分析:64位 Oracle 安装路径:E:appAdministrator

PL/SQL Developer连接本地64位Oracle数据库

1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html 这个一个绿色版的Oracle Client,因此只要需要解压了,就可以是.将下载的Oracle Client文件instantclient-basic-win32-11.2.0.

PL/SQL Developer从11.0.6版本开始32/64为之区分

PL/SQL Developer从11.0.6版本开始32/64为之区分 在PL/SQL Developer11.0.6版本之前,64位Windows操作系统在使用PL/SQL Developer都未能直接使用,需要借助InstantClient工具进行配置才可以正常使用,因为PL/SQL Developer只支持32位Windows操作系统.11.0.6版本之后,PL/SQL Developer开始支持64位Windows操作系统,也就是说此版本之后64位Windows操作系统不需要再借助In

PL/SQL Developer安装

对新手而言,在安装完Oracle 64位版本之后安装PL/SQL Developer,或者是部分人不想安装Oracle客户端而想直接使用PL/SQL Developer,总会遇到各种麻烦,下面简单总结一下,以便日后参考. 方法一: 1.安装32位的oracle client: 2.安装plsql developer: 优点是几乎不会有任何的手工配置的内容,但是,由于path环境变量可能会被修改,所以在执行sqlplus或者其他类似命令的时候可能会遇到其他问题. 方法二: 1.安装PL/SQL D

配置PL/SQL Developer连接Oracle数据库

准备: PL/SQL Developer:我用的是plsqldev1005(32位) win32_11gR2_client:记住一定是32位的,因为PL/SQL Developer只认32位的 安装成功后,需要配置环境变量: TNS_ADMIN环境变量,类似于:C:\app\Lzj\product\11.2.0\client_1\network\admin.这个变量实际上是PL/SQL Developer寻找tnsnames.ora的依据.有了这个环境变量,PL/SQL Developer启动是

在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘

最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作. 运行环境 服务器:windows server 2008 64位 服务器oracle版本:oracle 11g R2 64位,字符集是ZHS16GBK. 本机:windows 7 64位 需要准备的软件 1.Instant Client 12.1.0.2.0 32位和64位 Instant Cl

PL/SQL Developer 连接64位数据库出现乱码错误

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/41479997 安装64bit oracle11g数据库后,使用PL/SQL连接数据库,解决"中文字符"乱码问题 现场环境 操作系统 WINDOWS 2008 64bit 数据库版本 Oracl11g 64bit 11.2.0.3 PL/SQL版本