我正在通過ODBC functions向使用Oracle 9i數據庫編寫的PHP應用程序添加新功能。我創建了一個具有序列和觸發器的表來生成自動遞增的ID。通過ODBC檢索自動增量ID
現在,我在努力尋找一種方法,使插件和事後獲得生成的ID:
- 的ODBC庫不會出現有一個專門的
lastInsertId
方法。 - 使用
RETURNING
子句觸發器運行查詢:ORA-00439: feature not enabled: RETURNING clause from this client type
。 - 我可以運行一個
RETURNING
子句,如果我把它放在一個BEGIN...END
塊中,但它沒什麼幫助:OUT parameters are apparently not supported by the Unified ODBC driver PHP uses。
我是否需要硬編碼序列名稱並在其餘事務中使用SEQ_NAME.CURRVAL
?即使存在併發訪問,我需要做些什麼才能確保獲得正確的值?
更新:添加第三點失敗attemps
您使用的是哪種OLE DB的實現 - Oracle或Microsoft的? – APC 2011-02-24 13:07:14
@APC - 適用於Oracle的Microsoft ODBC驅動程序。據我所知,這不是OLE(這是我不管理自己的第三方服務器)。 – 2011-02-24 13:09:24
嗨阿爾瓦羅 - 我改變了我的問題,而你正在鍵入迴應8-)你使用MSDAORA? – APC 2011-02-24 13:12:16