Dan*_*nko 5 linux oracle erlang odbc
我需要在Linux中使用erlang odbc模块禁用oracle的autocommit.我创建了与代码的连接:
{ok, Con} = odbc:connect("DSN=MyDSN", [{auto_commit, off}, {scrollable_cursors, off}]).
Run Code Online (Sandbox Code Playgroud)
连接已成功创建.当我尝试更新表时,请求是成功的,但它是自动提交的.我究竟做错了什么?
好了朋友们。我自己解决了这个问题。正如我之前在评论中所说,问题是 Linux 的 Oracle ODBC 驱动程序在创建连接之前的驱动程序初始化期间忽略了设置自动提交模式。创建连接后,自动提交模式将被正确设置。
我为 erlang odbc 模块创建了一个 C 源代码修复程序,现在它工作正常了。您可以在这里获取我的 Erlang OTP 补丁 - https://github.com/RubberCthulhu/erlang-odbc-oracle-fix。
更新:这个消息虽然姗姗来迟,但在此通报可能还是有用的。我对 Oracle ODBC 的修复已包含在 Erlang/OTP 中。因此,从 R16A 开始,问题就不再存在,如果您需要将 ODBC 与 Oracle 一起使用,只需尝试最新版本的 Erlang/OTP。R14B04-R15B02 的补丁可在此处获取 - https://github.com/RubberCthulhu/erlang-odbc-oracle-fix。