2017-09-06 126 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開發人員從內存中加載大表。

  • 自動保存已被修改以防止錯誤:當前事務被中止,命令被忽略,直到事務塊結束。