PB9-Instant Client-ORACLE 12C的使用

PB9使用Instant Client连接ORACLE12c需要注意以下几点:


要安装正确的版本,客户端是32位的就用32位,是64位的就用64位,这里指的客户端不是操作系统,是发起连接的软件,如我在WIN7 64位系统上通过PB9连接ORACLE,因为PB9是32位的,就需要用32位的Instant Client,PL/SQL也分32位和64位版本,要区别对待对不同的Instant Client才可以。PL/SQL需要在启动登录时先取消,进入后在菜单上选工具-首选项进行参数设置


设置好主目录和oci.dll的文件路径后保存设置关闭再重新打开就可以了。在同一个操作系统中,Instant Client是可以32位和64位并存的


Instant Client 11.2.0.3.0之前的版本最好不用,因为PB9只能用DataBase Profile中的ORACLE 8i接口连接(不知道为啥,懒得研究了),版本过低连接时会报:ORA-28040: No matching authentication protocol。Oracle 12c的参数SQLNET.ALLOWED_LOGON_VERSION默认等于11。当我们使用11g JDBC之前版本的thin驱动连接的时候,就会报错。解决方法:在数据库服务器上的oracle/network/admin/sqlnet.ora文件添加一行SQLNET.ALLOWED_LOGON_VERSION=8,重启数据库,重新连接数据库,又有报错:ORA-01017: 用户名/口令无效; 登录被拒绝。将Instant Client的版本直接升级到12.2.0.1.0-32位,问题解决!


在使用PB连接到ORACLE时,需要将Instant Client中的DLL文件复制到C:\Program Files (x86)\Sybase\Shared\PowerBuilder目录中一份,否则会提示找不到oci.dll or ora804.dll


Instant Client的注册很简单,在系统环境变量中增加几个变量就可以了

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK(最好和服务器端相同)

ORACLE_HOME = D:\工作\PLSQL\InstantClient12.2\instantclient_12_2

TNS_ADMIN = D:\工作\PLSQL\InstantClient12.2\instantclient_12_2

如果要在32位和64位之间切换,更改ORACLE_HOME和TNS_ADMIN两个变量中的路径就可以了


关于网上资料

环境变量要建立在用户变量中,经测试不行,必须都放在系统变量中。

添加PATH路径,我没加,也正常。

编辑并导入注册表,我没编辑导入,没发现问题


PB9比较傻,在不断的测试过程中,不知道是因为版本的问题还是什么,忽然发现可以连接了,没有任何报错,就尝试通过PB INSERT一条记录到ORACLE,也没报错,可是到服务器上一查,什么都没有!连接正常,执行SQL正常,就是没数据,而且即便把网络连接断开或把ORALCE停掉,PB也还是一切正常的,好像所有的操作目标都是空的一样!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值