rapid-framework 连接 oracle时的一个bug

在连接oracle数据库时报错:

Exception in thread "main" java.lang.RuntimeException: create table object error,tableName:BIN$Z/lzLZsvmqzgQKjAyQEZdw==$0
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.createTable(DbTableFactory.java:115)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.getAllTables(DbTableFactory.java:124)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.getAllTables(DbTableFactory.java:81)
	at cn.org.rapid_framework.generator.GeneratorFacade.printAllTableNames(GeneratorFacade.java:25)
	at cn.org.rapid_framework.generator.GeneratorMain.main(GeneratorMain.java:13)
Caused by: java.sql.SQLException: ORA-01424: missing or illegal character following the escape character

	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
	at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
	at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1198)
	at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2400)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
	at oracle.jdbc.OracleDatabaseMetaData.getColumns(OracleDatabaseMetaData.java:2569)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.getColumnsResultSet(DbTableFactory.java:342)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.getTableColumns(DbTableFactory.java:294)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.retriveTableColumns(DbTableFactory.java:278)
	at cn.org.rapid_framework.generator.provider.db.DbTableFactory.createTable(DbTableFactory.java:109)
	... 4 more

 问题在于把系统表也读了出来,解决办法:

在createTable(Connection conn, ResultSet rs) 

方法里加判断

  if(realTableName.indexOf("$")>0)

return null;

 

在getAllTables方法里加

if(table != null)

tables.add(table);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值