环境表述:
oracle11gR2数据库安装在虚拟机(CentOS5.5 64bit)上,数据库名orcl,有用户test。虚拟机IP
192.168.128.101
物理机(Windows7 64bit)上没有安装数据库,物理机可以ping通虚拟机,且已安装PL/SQL
developer 9.0 (32bit)
介质:instantclient-basic-win32-11.2.0.1.0.zip(根据操作系统下载不同的位数的)。
目标:
PL/SQL通过instance client连接到虚拟机上的数据库orcl
实施步骤:
1、解压instance client到d盘,进入其主目录创建D:\instantclient_11_2\network\admin\tnsnames.ora目录和文件。
tnsnames.ora文件的内容填写为从oracle数据中获得的tnsnames.ora文件(该文件放在$ORACLE_HOEM\network\admin)的内容,要将里面的主机名更改为所在主机的IP地址。
tnsname内容示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.128.101)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.101)
)
)
2、不登陆启动PLSQL,在工具-->首选项--->连接填写如下图内容
3、需要配置相应的环境变量:
>> TNS_ADMIN = D:\instantclient_10_2
需要把tnsnames.ora(orcale中的db\network\admin\tnsnames.ora文件)放置到该目录下边。
>> NLS_LANG = AMERICAN_AMERICA.AL32UTF8
用于标明数据库字符集,解决中文乱码的问题。
可通过"select userenv('language') from dual"来查看字符集。
配置出错可能会出现:ora-12705:cannot access NLS data files or invalid environment specified 的错误
path和oracle_home视情况处理吧,仅使用pl/sql有以上两项就可以了。
保存修改,退出。
PS:
NLS_LANG参数格式
NLS_LANG=<language>_<territory>.<client character set>
Language: 显示oracle消息,校验,日期命名
Territory:指定默认日期、数字、货币等格式
Client character set:指定客户端将使用的字符集
例如:NLS_LANG=AMERICAN_AMERICA.US7ASCII
AMERICAN是语言,AMERICA是地区,US7ASCII是客户端字符集
select * from nls_database_parameters; //服务器字符集环境
select * from nls_instance_parameters; //客户端字符集环境
4、在确保,虚拟机上的数据库和监听已经开启的前提下,可以重新启动PLSQL