Я очень новичок в PLSQL. Мне нужна помощь немного. Как использовать такая же сделка для основная функция и подфункция. Мой пример, если работает строка открытого комментария, но я хотел бы использовать одну транзакцию в главной функции. Является ли это возможным?как использовать такую же транзакцию многие функции в PLSQL
CREATE OR REPLACE FUNCTION MAINFUNC(PAR1 IN NUMBER)
RETURN VARCHAR2
IS
RITEM VARCHAR2 (1000);
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO table_name
VALUES (value1,value2,value3,...);
RITEM := SUBFUNCTION(PAR2);
COMMIT;
EXCEPTION
ROLLBACK;
END;
подфункции здесь:
CREATE OR REPLACE FUNCTION SUBFUNCTION(PAR2 IN NUMBER)
RETURN VARCHAR2
IS
RITEM VARCHAR2 (1000);
--PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO table_name
VALUES (value1,value2,value3,...);
--COMMIT;
EXCEPTION
--ROLLBACK;
END;
Что такое реальный вопрос? Ваш код использует уникальную (автономную) транзакцию, и это связано с тем, что вы прокомментировали фиксацию и откат в подфункции, поэтому он делает именно то, что вы просили. – Massimo
Я хочу использовать транзакцию основной функции для вспомогательной функции тоже, но я не могу и я получаю эту ошибку ORA-14552. Но если я совершил изменения в подфункции, не получаю никакой ошибки @Massimo –
Почему вы сделали основную функцию автономной? Это очень редко необходимо или хорошая идея. –