是否可以在Pro * C中使用PRAGMA AUTONOMOUS_TRANSACTION?

时间:2018-12-13 11:47:52

标签: oracle-pro-c

我尝试在Pro * C中使用PRAGMA AUTONOMOUS_TRANSACTION,但是在编译时出现以下错误:

    PRAGMA AUTONOMOUS_TRANSACTION;
...........1
PCC-S-02201, Encountered the symbol "AUTONOMOUS_TRANSACTION" when expecting one
of the following:

   ; into, using,

相关部分代码为:

  EXEC SQL EXECUTE
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
      INSERT INTO TABLE_TEST
        ( FIELD1, FIELD2, FIELD3 )
      VALUES
        (:sOraFIELD1, :sOraFIELD2, :sOraFIELD3);
      COMMIT;
    END;
  END-EXEC;

我在这里做错了什么? Pro * C不允许这样做吗?

版本:Pro*C/C++: Release 11.2.0.1.0

我是否可以选择获得类似结果?我不能简单地做EXEC SQL COMMIT;,因为那样我会收到Oracle错误2089:下级会话中不允许COMMIT

1 个答案:

答案 0 :(得分:0)

我从未在 Pro*c 中尝试过,但是请评估备用连接的概念。 您可以使用备用连接插入和提交。

EXEC SQL AT "DB name" "你的语句或在这种情况下" Insert ; EXEC SQL AT "DB name" "你的语句或在这种情况下" Commit;