Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

क्या एक ट्रिगर के अंदर गतिशील रूप से एक जॉब बनाया जा सकता है?

कॉलिंग DBMS_SCHEDULER.CREATE_JOB परोक्ष रूप से कमिट करता है इसलिए आप एक DBMS_SCHEDULER नहीं बना सकते हैं एक ट्रिगर में नौकरी। यह उन स्थितियों में से एक है जो अभी भी पुराने DBMS_JOB . का उपयोग करने के लिए कहते हैं DBMS_JOB.SUBMIT . के बाद से पैकेज परोक्ष रूप से प्रतिबद्ध नहीं है।

इस ट्रिगर को DBMS_JOB . का उपयोग करके वह कार्य बनाना चाहिए जो आप चाहते हैं पैकेज के बजाय DBMS_SCHEDULER

create or replace
TRIGGER AFT_INSERT_TMP_TBL
AFTER INSERT ON TMP_TBL
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE 

    V_SQL VARCHAR2(1000);
    A_NAME VARCHAR2(100);
    l_jobno NUMBER;
BEGIN
    A_NAME:='ANY_NAME';

    dbms_job.submit( l_jobno,
                     'BEGIN dbms_output.put_line( ''' || a_name || ''' ); END;',
                     sysdate + interval '2' minute,
                     'sysdate + interval ''2'' minute' );
     DBMS_OUTPUT.PUT_LINE('Job Number:'||l_jobno);

END AFT_INSERT_TMP_TBL;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pl sql में स्ट्रिंग को टोकन में विभाजित करें

  2. डेटाबेस व्यू से चयन करते समय मुझे एक खुला लेनदेन क्यों मिलता है?

  3. कर्सर अप्रचलन डंप

  4. ORA-01461:केवल एक लंबे कॉलम में डालने के लिए एक लंबा मान बांध सकता है-क्वेरी करते समय होता है

  5. नकली OLAP