2017-09-06 125 views
1

我有我的Oracle SQL Developer,这是连接到PostgreSQL数据库自动提交连接到PostgreSQL

根据这一链接时,在甲骨文的SQLDeveloper始终打开:Oracle SQL Developer and PostgreSQL 我设法我的SQLDeveloper连接到PostgreSQL(仅供参考,我SQLDeveloper版本是17.2,而服务器中的postgresql是9.6)

但是,尽管我的SQLDeveloper中的自动提交设置已关闭(通过工具>首选项>数据库>高级),但我的SQLDeveloper无法提交和回滚。当我试图执行提交/回滚手动(通过键入IE “COMMIT;” 或 “ROLLBACK;”),I得到的消息:

Cannot rollback when autoCommit is enabled. 

据我所知,PostgreSQL的总是自动提交,并自动提交关闭由客户完成。例如,我尝试了PGAdmin,并设法手动提交和回滚而没有自动提交(太糟糕了,PGAdmin有点慢)

任何人都可以帮助我在连接到PostgreSQL时关闭SQLDeveloper的自动提交吗?

感谢

回答

0

这是可以做到的,但pgjdbc司机必须进行修改(自动提交,不能使用URL属性进行修改)

我与发布42.0.0完成它(和可以发送如果需要通过电子邮件JAR):

https://github.com/pgjdbc/pgjdbc 下载源代码

修改代码如下所述:

PGProperty.java

DEFAULT_ROW_FETCH_SIZE( “defaultRowFetchSize”, “50”,//是 “0”

AUTOSAVE( “自动保存”, “始终”,//是 “从不”

PgConnection.java private boolean autoCommit = false; //是真

重建jar文件。

此修改的驱动程序支持提交;回滚;在语法窗口中,即使提交和回滚按钮仍灰显。

也许有人会找到一种方法来改变SQL开发人员的代码以使这些按钮; O)

注:

  • defaultrowfetchsize已被修改,以防止SQL开发人员从内存中加载大表。

  • 自动保存已被修改以防止错误:当前事务被中止,命令被忽略,直到事务块结束。