Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle след задействане на актуализацията създава връзка към публична база данни

Създаването на връзка към база данни в движение изглежда необичайно нещо; вашата схема обикновено трябва да е статична и стабилна. Въпреки това, ако трябва, би било по-лесно да опаковате актуализацията и връзката в процедура или просто да издадете две изявления - предполага се, че каквото и да изпълнява актуализацията, така или иначе е доста контролирано, в противен случай ще трябва да се справите с множество хора, задействащи това множество пъти, което би било още по-голяма бъркотия.

Вероятно можете да направите това да работи, като добавите PRAGMA autonomous_transaction; към вашия тригер, както е показано за подобен проблем (създаване на изглед вместо връзка) в този отговор , но не съм в състояние да тествам това в момента.

create or replace
TRIGGER CreateLinkTrigger
after UPDATE of Year ON tableInit 
for each row
DECLARE
    add_link VARCHAR2(200);
    PRAGMA autonomous_transaction;
BEGIN
    ...

Можете също така да накарате тригера да изпрати асинхронна задача за изпълнение на DDL, както е описано в този отговор , и има още един пример в този отговор , където бихте променили анонимния блок на задачата, за да направите вашето execute immediate .

Вероятно би било по-добре просто да създадете връзките за следващите няколко години предварително по време на прозорец за поддръжка, или по график, или от процедура; вместо да се опитвате да свържете промяна на схема с промяна на данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle заявка Свържете всички колони с ','

  2. SQL заявка:Връща запис на максимална стойност на група

  3. Oracle spool файл към .txt файл. Опции за заглавия

  4. Как да увеличим буфера dbms_output?

  5. Използване на връзки към бази данни на Oracle без нечетлив динамичен SQL