Oracle: отключить ограничение внутри триггера -- sql поле с участием oracle поле с участием triggers пол Связанный проблема

Oracle: Disable a constraint inside a trigger


0
vote

проблема

русский

Извините за раздражение, возможно, глупый вопрос, но почему это утверждение:

 <код> ALTER TABLE SESSION_LOGGING disable CONSTRAINT fk_session_log_ben_name;   

Работа отлично отлично и просто как ожидалось, когда выполняется как обычная команда SQL, Но при помещении в определенный правильный рабочий триггер (который не выполняется для таблицы Session_Logging!), заставляет триггер не иметь возможности компилировать?

Надеюсь, кто-то может помочь ...

Английский оригинал

Sorry for annoying with a possibly stupid question, but why does this statement:

ALTER TABLE SESSION_LOGGING disable CONSTRAINT fk_session_log_ben_name; 

work perfectly fine and just like expected, when executed as a normal SQL command, but when placed in an otehrwise correct working TRIGGER (which is NOT executed for the session_logging table!), causes the trigger not to be able to compile anymore?

Hope someone can help...

</div
        
 
 

Список ответов

0
 
vote
vote
Лучший ответ
 

Все операторы DDL, такие как <код> CREATE / <код> ALTER выдают неявный коммит до и после утверждения. Нам не разрешено выпускать <код> commit или <код> rollback в триггере. Таким образом, DDL не может быть использован в триггерах.

Для этого Oracle Community Post Вы можете сделать что-то вроде Ниже выполните <код> ALTER оператор в триггере, но это совсем не рекомендуется и плохая практика также.

 <код> declare  pragma AUTONOMOUS_TRANSACTION; begin  execute immediate 'alter table SESSION_LOGGING ......';   
 

All DDL statements like CREATE/ALTER issue an implicit commit before and after the statement. We are not allowed to issue commit or rollback in a trigger. So DDL can't be used in Triggers.

Per this Oracle Community Post you can do something like below to execute an ALTER statement within trigger but it's not at all recommended and a bad practice as well.

declare  pragma AUTONOMOUS_TRANSACTION; begin  execute immediate 'alter table SESSION_LOGGING ......'; 
</div
 
 
     
     

Связанный проблема

0  Значение цитаты в Zend Framework 2  ( Quote value into zend framework 2 ) 
Я работаю над приложением, используя ZF2. В моем приложении я должен вставить много строк в базу данных (около 900). У меня есть таблица модель для этого, п...

18  Функция isnull в db2 sql?  ( Isnull function in db2 sql ) 
Есть ли исполнительное, эквивалентное isnull функции для db2? Представьте себе, что некоторые из наших продуктов являются внутренними, поэтому у них нет име...

0  Конвертировать стол в другой формат в MSSQL  ( Convert table to another format in mssql ) 
Я сталкиваюсь с проблемой с MS-SQL в получении вывода из таблицы в определенном формате. . Имя |. StringValue |. Parent_id. Полевое имя |. Testheader1 |. 3. ...

1  Настройте SQL PolyBase для доступа к внешним данным в MongoDB - проблема  ( Configure sql polybase to access external data in mongodb problem ) 
Я пытаюсь подключить SQL Server с помощью полибазы с MongoDB, но я не в состоянии создать внешний источник данных для этого. Пожалуйста, помогите ... Я испо...

-1  SQL Server: Дата сравнения часов  ( Sql server date to hours comparison ) 
Я хотел бы получить элементы, размещенные на заказами за последние X часов. Если таблица хранит эти данные в качестве даты, как бы я смогу получить заказы, по...

0  Сервер SQL Server Rowing Rows Mathet - без «заказа»  ( Sql server paging rows by offset without order by ) 
Производственный стол мой содержит более миллиона записей. Требование требует для поискового запроса для извлечения записей по смещению и предельным параметра...

0  Обновление данных с той же первичным ключом  ( Updating data with same primary key ) 
Я читаю данные из файла CSV и добавление данных в базу данных. Во время вставки данных в базу данных я хочу обновить данные с той же первичной клавишей. e.g...

0  SQL-запрос слишком долго  ( Sql query taking too long ) 
У меня есть простая «вставка в ..». Запрос, который принимает около 40 секунд для выполнения. Он просто принимает записи из одной таблицы и вставляет в другую...

2  SQL Table в другую базу данных  ( Sql table to another database ) 
У меня есть 2 баз данных на SQL (идентично). Я хочу, чтобы таблица из одной базы данных была скопирована в другую базу данных. Они как одно и то же имя, и ори...

1  Используйте SQL, чтобы выбрать поля из списков WordPress  ( Use sql to select fields from wordpress listings ) 
Я использую тему WordPress, которая может хранить много информации, которую я довольно увлекаюсь доступом. Я пытаюсь получить доступ к широте и долготе (кот...

3  Выбор таблицы свойств как столбцы  ( Selecting table of properties as columns ) 
У меня есть две таблицы, <код> things и <код> properties : <код> CREATE TABLE things ( id SERIAL PRIMARY KEY ); CREATE TABLE properties ( thing_id INT...

0  SQL Server - получить столбец, у которого есть конкретное значение  ( Sql server get column who have specific value ) 
У меня есть запрос SQL, который возвращает: <код> id | value 1 a 1 a 1 b 2 a 2 a Я хочу получить только...

23  Клиент браузера Microsoft SQL [Закрыто]  ( Microsoft sql browser client ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт. Этот вопрос не соответствует Рекомендациям переполнения ...

0  Что такое мой пропавший оператор в моем выражении запроса?  ( What is my missing operator in my query expression ) 
First Off, я очень новый с доступом, так что извиняюсь, если это супер базовый, но я бегу в проблему с моим запросом, и я не знаю, в чем проблема. Вот мой код...

2  Как использовать Regex с JSON_EXTRACT на большом запросе  ( How to use regex with json extract on big query ) 
У меня есть поле JSON на большом настольном запросе и в настоящее время я использую следующий метод, чтобы сделать извлечение из элемента ID (например): <ко...