Нужно ли использовать COMMIT при чередовании DDL и DML?
В Oracle я вызываю следующие запросы (не из sqlplus) как часть сценария установки:
ALTER TABLE MYTABLE DISABLE CONSTRAINT PFTATTRS_ATTR_FK;
INSERT INTO MYTABLE (PTF_ID, ATTR_ID) VALUES (1, 5);
ALTER TABLE MYTABLE ENABLE CONSTRAINT PFTATTRS_ATTR_FK;
Как вы видите, я чередую DML (которые требуют COMMIT) с DDL (которые автоматически фиксируются). Я сомневаюсь: мне нужно фиксировать DML перед каждым DDL, или безопасно сделать один большой коммит в конце моего сценария?
1 ответ
Решение
Посмотреть здесь.
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:7072180788422
https://community.oracle.com/message/10310617
Каждый оператор DDL будет фиксировать все предыдущие незафиксированные операторы DML.