开发者社区> 问答> 正文

jfinal Sybase数据源执行create table,alter table报错?报错

@JFinal 你好,想跟你请教个问题:Jfinal执行事务在Sybase create/alter语句出错:
com.jfinal.plugin.activerecord.ActiveRecordException: com.sybase.jdbc3.jdbc.SybSQLException: The 'ALTER TABLE' command is not allowed within a multi-statement transaction in the 'TEST' database.


at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:279)
at com.jfinal.plugin.activerecord.DbPro.update(DbPro.java:290)
at com.suntek.iccmgr.cust.util.TransactionUtil$2.run(TransactionUtil.java:63)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:644)
at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:680)

<p style="font-size:13.3333px;">
	但是数据源是Oracle的话是可以执行成功的,请问是什么问题导致的呢?
</p>

展开
收起
爱吃鱼的程序员 2020-06-09 16:07:56 939 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    错误提示已经很明确了:无法在"TEST"数据库的多语句事务中执行"ALTERTABLE"命令,去掉事务试试回复<aclass='referer'target='_blank'>@JFinal:好的,我自己再研究一下,谢谢啦~回复<aclass='referer'target='_blank'>@codeRunner:jfinal未对此进行过任何干预,所以只能是从jdbc或数据库层面尝试解决回复<aclass='referer'target='_blank'>@codeRunner:这个应该是jdbc或者数据库不支持,在jfinal层面只能尝试DbKit.getConfig().getConnection()拿到Connection对象,或者通过getDataSource()拿到dataSource对象,或者通过改变数据库的配置来实现去掉事务单独执行是可以的,我是想在事务里面同时执行一批create/alter语句,有没有什么方法可以实现?

    2020-06-09 16:08:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Sever迁移PG经验 立即下载
SQL Server 2017 立即下载
Spark SQL最佳实践 立即下载