好的,我是Oracle PL/SQL的新手,我偶然發現了一個我無法弄清楚的問題。 我有一個過程導致將數據從一個表傳輸到另一個表和一個在第二個表中插入時激活的觸發器。我預定該程序每分鐘運行一次(用於測試 - 一旦我找出結果,每天都會運行),使用DBMS_JOB.SUBMIT - 預定部分完美工作,但是在完成該過程之後觸發器未被觸發。我在插入子句之前和之後嘗試過,但它仍然不起作用。如果我直接調用該過程,它就會起作用,它確實觸發了觸發器。所以......我已經想知道預定的程序是否可以觸發觸發器?!Oracle PL/SQL:一個預定的過程,導致觸發一個觸發器?
這是日程代碼:
DECLARE
VJOBN BINARY_INTEGER;
BEGIN
DBMS_JOB.SUBMIT(
JOB => VJOBN,
INTERVAL => 'SYSDATE + 1/2880',
WHAT => 'BEGIN my_procedure(); END;'
);
END;
create or replace TRIGGER TO_PRJ
AFTER INSERT ON PROJECTS
FOR EACH ROW
BEGIN
IF INSERTING
THEN DBMS_OUTPUT.PUT_LINE('INSERTED PROJECT WITH ID: '||:NEW.PROJECT_ID||')
END IF;
END;
表項目上的ID號,名字VARCHAR2,以及其他一些不屬於重要。 該過程將標識和名稱從訂單傳輸到項目。
P.S.我使用的是http://apex.oracle.com,當我從它得到時間戳時,實際上是在我身後6小時 - 不知道它是否可以有任何意義...
Oracle作業將照常進行。不需要擔心觸發。如果在存儲過程或表中設置觸發器,它將像往常一樣運行。順便說一句,爲什麼你把「存在和結束」放在什麼條款中? – ppshein
@ppshein嗯......我很擔心觸發器,因爲它在作業調用存儲過程時不運行。我把最終目標放在了最後,因爲這就是我在其中一篇我讀過的教程中看到的 - 不再記得是哪一本,在試圖找出它的時候搜索了十億個。 – Izumi