使用Oracle Instant Client - SQLPlus (设置PLSQL Developer访问本机64位Oracle)
1、下载Oracle Instant Client
服务器系统Windows Server 2003,安装了Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 ,带有SQL*Plus。客户端系统Windows XP SP3,需要使用SQL*Plus对Oracle数据库进行操作。搜索了一下,发现Oracle Instant Client(http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html)正是所需。
如果只使用SQL*Plus,则下载以下两个包即可:
a)、Instant Client Package - Basic:
All files required to run OCI, OCCI, and JDBC-OCI applications
instantclient-basic-win32-11.1.0.6.0.zip (43,316,697 bytes)
b)、Instant Client Package - SQL*Plus:
Additional libraries and executable for running SQL*Plus with Instant Client
instantclient-sqlplus-win32-11.1.0.6.0.zip (788,050 bytes)
2、安装配置
a. 解压文件:
将instantclient-basic-win32-11.1.0.6.0.zip 和 instantclient-sqlplus-win32-11.1.0.6.0.zip解压到同一目录下(如:F:\Oracle\InstantClient)。
b. 环境变量设置:
将F:\Oracle\InstantClient增加到系统环境变量PATH中。
再添加环境变量TNS_ADMIN (admin目录是自己新建的):
TNS_ADMIN=F:\Oracle\InstantClient\admin
可选环境变量:(注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8。)
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
c. 创建配置文件:
在TNS_ADMIN所指目录F:\Oracle\InstantClient\admin下增加一个配置文件tnsnames.ora。这个文件可以直接从服务器的Oracle安装目录(E:\db.oracle11g.win64\product\11.2.0\dbhome_2\NETWORK\ADMIN\tnsnames.ora)下找到,直接复制过来。
tnsnames.ora:
# tnsnames.ora Network Configuration File:
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3、使用SQL*Plus:
打开cmd,输入如下内容:
c:\>sqlplus sys/admin@orcl as sysdba
如果输出类似如下内容,则表示连接成功:
SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 7月 21 00:03:28 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
也可以这样输入:
c:\>sqlplus /nolog
SQL> conn sys@orcl as sysdba
输入口令:admin
4、注意问题:
a、以sys用户登陆后要加”as sysdba”,否则可能出现如下错误:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
b、如果不指定tnsnames.ora,则可能出现如下错误:
ORA-12154: TNS: 无法解析指定的连接标识符
c、如果不需要Instant Client了,想删除它,可能会发现无法删除F:\Oracle\InstantClient\oci.dll。这时,只要停止msdtc服务:"net stop msdtc"
,然后再删除即可。
5、32位的PLSQL连接64位的Oracle
PLSQL连接64位的Oracle,报告说无法加载oci.dll文件。原来oci.dll是64位的,32位应用程序PLSQL Developer自然无法加载了。
试验了下,解决办法如下:
- 下载32位Oracle InstantClient,并展开到某目录,例如C:\oracle\instantclient_10_2;
- 将系统的tnsnames.ora拷贝到该目录下;
- 在PLSQL Developer中设置Oracle_Home和OCI Library,如下图所示;
- 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式;
启动PLSQL Developer:
@echo off
set path=C:\oracle\instantclient_10_2
set ORACLE_HOME=C:\oracle\instantclient_10_2
set TNS_ADMIN=C:\oracle\instantclient_10_2
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8。