node連線oracle資料庫,更新資料後,資料庫中不生效問題
線上資料更新oracle中表資料時,一切都是正常的,但是本地斷點測試的時候,實際資料庫中未發生改變。
問題
大概如下,更新一張表中的內容,大致如下:
connection.execute( 'UPDATE table1 SET key = 123 WHERE id = 11')
並且他返回了一個物件,顯示rowsaffected是1,也就是一行受影響。但是此時取資料庫看時,並未生效。
處理方法
查了很久,還以為原先的是正常的,咋突然就不行了呢?後詢問後端人員,更改資料庫時,可能需要commit下。而我最後會在迴圈之後呼叫一個儲存過程,該儲存過程中有commit,故正常跑沒有問題。而斷點或沒有執行儲存過程時,都無法在資料庫中生效。
所以得出結論,更新表時需要commit下,當然node-oracledb也提供了方法:
const oracledb = require('oracledb'); oracledb.autoCommit = true;
設定自動提交後,問題就可以解決了。