Дом » базы данных » Можем ли мы написать функцию фиксации в Oracle?

Можем ли мы написать функцию фиксации в Oracle?

328
Последнее обновление: 2021-09-05 07:36:55


Ответить:
U не может зафиксировать в функции . но если u зафиксировать после статуса возврата, он будет компилироваться и выполняться, но команда COMMMIT не будет выполняться, потому что элемент управления будет вернуться в статусе RETURN. Тогда можем ли мы записать фиксацию в триггер в Oracle? Триггер не должен фиксировать и не может фиксировать . Фиксация в триггере обычно вызывает исключение, если только это не происходит в автономной транзакции. Когда вы открываете соединение, Oracle создает для него сеанс. Когда вы начинаете изменять данные (вставлять в TableA), Oracle начинает транзакцию. Точно так же нужно ли совершать коммит после вставки в Oracle? TRUNCATE - это команда DDL, поэтому ей не требуется явная фиксация , поскольку ее вызов выполняет неявную фиксацию . С точки зрения проектирования системы транзакция - это бизнес-единица работы. Он может состоять из одного оператора DML или нескольких из них. Это не имеет значения: COMMIT требуется только для полных транзакций. Тогда можем ли мы использовать фиксацию в процедуре Oracle? Как правило, процедуры не должны фиксироваться . Если вы вызываете процедуру в интерактивном режиме, вам необходимо явно зафиксировать или откатить транзакцию, поскольку Oracle не знает если вы хотите, чтобы вызов процедуры был логической транзакцией или если вы намереваетесь составить более крупную транзакцию, включающую несколько вызовов процедуры . Можно ли писать операторы DDL в функциях? Запрещено DDL : функция , вызываемая из инструкции SQL , ограничена для DDL потому что DDL вызывает неявную фиксацию. Вы не можете выполнять какие-либо операторы DDL из функции PL / SQL . Ограничения против ограничений: нельзя использовать функцию в проверочном ограничении оператора DDL для создания таблицы.

up