【发布时间】:2011-07-03 13:17:21
【问题描述】:
我正在通过ODBC functions 向使用Oracle 9i 数据库的PHP 编写的旧应用程序添加新功能。我创建了一个表,其中包含一个序列和一个触发器来生成自动递增的 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?即使有并发访问,我需要怎么做才能确保获得正确的值?
更新:为失败的尝试添加了第三点
【问题讨论】:
-
您使用的是哪种 OLE DB 实现 - Oracle 的还是 Microsoft 的?
-
@APC - 适用于 Oracle 的 Microsoft ODBC 驱动程序。据我所知,不是 OLE(它是我自己不管理的第三方服务器)。
-
您好 Alvaro - 我在您输入回复时更改了我的问题 8-) 您在使用 MSDAORA 吗?
-
@APC - 可能不是:我什至不知道 MSDAORA 是什么。
标签: php oracle triggers odbc sequence