最近遇到的两个BUG

最近遇到两个BUG

第一: 我要用jdbc连接客户的oracle数据库客户版本为11g 由于我的测试错误我觉得使用的class12这个包版本有点老,好像查不出oracle11g的数据(经证实是我错了) 所以我换了oracle11g的ojdbc6_g驱动包。

 

    换包之后连接报错 ora12505 ,plsql工具可以连接数据库但是jdbc不行,于是乎我就上百度找寻答案,查询了很多网上的帖子才发现问题,9i等老版本的驱动包连接数据库使用的是servicename 也就是我们在tnsnames.ora里配置的服务名。而11g版本的驱动包要求连接数据库要使用sid,爆出的ora12505也就是因为使用的sid不正确导致的。 有很多人的答案是使用sql语句查看数据库中的sid 察看数据库中当前的sid: 

 

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME ---------------- has

 

    这种方法显然很正确,不过我使用的数据库用户没有查看此视图的权限,没办法只能接着找。

    最后在一位高手的贴子里找到了答案,这位高手给我们讲解了servicename和sid的区别,并且根据他丰富的经验提出,一般数据库rac集群 有多个子节点,子节点的sid是servicename+数字,而我使用的oracle rac集群的服务名就是rac 将sid改为rac1访问第一个子节点,连接成功。

 

第二个: 由于我在项目中使用了smb方式来读取服务器的文件,也就是获取windows局域网共享的文件。在这种方法中使用的访问路径格式为:smb://username:password@172.24.14.10/word_files。

 

    由于我使用的密码中含有@字符 导致访问失败,于是乎我又上网找寻答案,结果发现这方面的资料较少,有几位网友写过smb的教程 也提出用户名和密码中不能含有强字符,否则会出错,但是没有提出解决方案。 无奈之下只能搜索包名jcifs,进如官方网站查找api 找到答案 @要用%40表示。 希望此帖子能够帮助到一些人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值