java.sql.SQLException: ORA-01424问题的解决方案

今天在用mybatis连接数据库生成表的时候,遇到java.sql.SQLException: ORA-01424的错误,本来以为是sql语句或者是数据库编码问题,后来查到说是数据库回收站的问题,最后解决了问题,于是乎想起将问题记录下来,解决方案如下:

java.sql.SQLException: ORA-01424: 转义符之后字符缺失或非法”,从这个错误中明显的看出这是Oracle数据库报的错,于是赶紧上google百度了一下,原来是Oracle数据库自10G以后都加入了回收站机制,即Drop Table 后,没有真正的删除表,而是在垃圾站中了。既然是回收站,时间长了就会满,一旦满了,再有垃圾就没地方放了,于是乎就异常了。

知道错误原因了,下一步就是解决问题了。首先要把回收站清空,可以通过:

SQL> select * from RECYCLEBIN 查询到回收站的内容;

彻底删除之,使用:
SQL> PURGE TABLE "BINjR8PK5HhrrgMK8KmgQ9nw==";
删除这一个或
SQL> PURGE RECYCLEBIN;
删除全部。

回收站清空后,再到系统操作就正常了,可是时间一长回收站仍然会满,于是乎干脆不用回收站得了,禁止回收站功能:

 

show parameter recyclebin

 

alter session set recyclebin=off。

猜你喜欢

转载自649153158.iteye.com/blog/1485865