Caused by: java.sql.SQLException: 违反协议 error code [17401]

今天在Java编程遇到了一个奇怪的现象,jar包应用往Oracle11g插入数据时效率很低,经查应用日志,有的可以插入成功,有的报错:

### Cause: java.sql.SQLException: 违反协议
; uncategorized SQLException for SQL []; SQL state [null]; error code [17401]; 违反协议; nested exception is java.sql.SQLException: 违反协议

经查,是因为应用使用的是ojdbc4.jar作为访问Oracle11g的驱动,ojdbc版本较低,所以会出现如上错误。

解决方法:

1、替换掉应用jar包中的ojdbc(我使用的是WinZip替换的);

2、把应用jar包的"META-INF/MANIFEST.MF"文件中的ojdbc版本的引用修改至最新(修改MANIFEST.MF对包的引用Export-Package)。

上述两种是比较快的方法,如果不好使,那就在源码中替换掉ojdbc,然后重新打包即可。

你可能感兴趣的:(JAVA)