下载ORACLE 11g绿色版客户端。Instant client的版本很多:主要是Basic和Basic Lite。
Basic版本包括了所有的支持运行OCI、OCCI、JDBC、JDBC-OCI的文件,支持多种语言。
Basic Lite是Basic版本的精简版,只包括了英文的错误描述,也只支持Unicode、ASCII和欧洲字符集。
因此,如果数据库服务器是中文字符集(如 SIMPLIFIED CHINESE_CHINA.ZHS16GBK),则必须下载Basic版本。
我的解决办法:问题场景描述:
服务器端版本:oracle
10.2.0.10
客户端版本:oracle
10.2.0.10
客户端开发工具:PL/SQL
Developer
通过客户端来连接服务器,其主要文件就是通过客户端的tnsnames.ora来配置,在原文件的基础上增加:
SID别名
=
(DESCRIPTION
=
(ADDRESS_LIST
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
SERVER_IP)(PORT
=
1521))
)
(CONNECT_DATA
=
(SID
=
SID_NAME)
)
)
例:
dev_db
=
(DESCRIPTION
=
(ADDRESS_LIST
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
172.168.10.5)(PORT
=
1521))
)
(CONNECT_DATA
=
(SID
=
ora10)
)
)
通过PL/SQL
Developer连接dev_db时,报“ORA-12154:
TNS:
无法解析指定的连接标识符”。(这个问题以前也碰到过,但解决方法不太一样,因具体的问题不太一样。)
我将自己知道的一些解决方法说一下:
1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听
客户端:tnsping
<tns_name>
服务器Linux下:
#>lsnrctl
status
查看监听状态
#>lsnrctl
start 启动监听
2.通过Sql
Plus连接一下试试,如果Sql
Plus连接能成功,那就说明你的tnsnames.ora内容有错误
我的问题就在别名dev_db前面有一个空格,这个可以通过文本编辑器(Edit
Plus,UE等)来查看是否有空格,只要有空格那就肯定是不行的,而且如果那段内容是出现在文件的中间的话,将导致该文件里所有相应的连接别名都不成功,如果是在最后面就只有其自身连接别名不能成功,其他连接别名还是能连接成功。(注:我的tnsnames.ora配置了多个数据库实例的连接,所有才有多个连接别名。)
如:
空格dev_db
=
(DESCRIPTION
=
(ADDRESS_LIST
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
172.168.10.5)(PORT
=
1521))
)
(CONNECT_DATA
=
(SID
=
ora10)
)
)
3.如果确保你的tnsnames.ora内容没有错误,那请将%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了,然后重新连接,一般就能解决了。
说明一下:那个目录里的文件是在你建立连接的时候动态生成的,不要怕删了会有问题
4.进入PLSQL
Developer的主界面,在登录界面选择取消即不登录进入主界面,然后选择菜单Tools(工具)-Preferences(首选项),在设置窗口中,选择Oracle-Connection(连接),对应设置窗口中,找到Oracle
Home(Oracle主目录),选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL
Developer,这时就可以正常登录了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)