Можно ли использовать PRAGMA AUTONOMOUS_TRANSACTION в Pro*C?
Я пытался использовать PRAGMA AUTONOMOUS_TRANSACTION
в Pro*C, но я получаю следующую ошибку во время компиляции:
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 ответ
Я никогда не пробовал это в Pro*c, однако, пожалуйста, оцените концепцию альтернативного соединения. Вы можете вставить и зафиксировать, используя альтернативное соединение.
EXEC SQL AT "имя БД" "ваше утверждение или в данном случае" Insert ;EXEC SQL AT «имя БД» «ваше заявление или в этом случае» Commit;