Oracle Database
स्वायत्त लेनदेन
खोज…
टिप्पणियों
स्वायत्त लेनदेन के लिए विशिष्ट उपयोग के मामले हैं।
- किसी भी प्रकार के लॉगिंग ढांचे के निर्माण के लिए जैसे त्रुटि लॉगिंग फ्रेमवर्क उपरोक्त उदाहरण में समझाया गया है।
- लेनदेन की अंतिम स्थिति (COMMIT या ROLLBACK) की परवाह किए बिना तालिकाओं पर ट्रिगर में DML संचालन के लिए।
लॉगिंग त्रुटियों के लिए स्वायत्त लेनदेन का उपयोग करना
निम्नलिखित प्रक्रिया एक जेनेरिक है जिसका उपयोग किसी अनुप्रयोग में सभी त्रुटियों को एक सामान्य त्रुटि लॉग टेबल पर लॉग इन करने के लिए किया जाएगा।
CREATE OR REPLACE PROCEDURE log_errors
(
p_calling_program IN VARCHAR2,
p_error_code IN INTEGER,
p_error_description IN VARCHAR2
)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO error_log
VALUES
(
p_calling_program,
p_error_code,
p_error_description,
SYSDATE,
USER
);
COMMIT;
END log_errors;
निम्न अनाम PLSQL ब्लॉक दिखाता है कि log_errors प्रक्रिया को कैसे कॉल किया जाए।
BEGIN
DELETE FROM dept WHERE deptno = 10;
EXCEPTION
WHEN OTHERS THEN
log_errors('Delete dept',sqlcode, sqlerrm);
RAISE;
END;
SELECT * FROM error_log;
CALLING_PROGRAM ERROR_CODE ERROR_DESCRIPTION ERROR_DATETIME DB_USER
Delete dept -2292 ORA-02292: integrity constraint violated - child record found 08/09/2016 APEX_PUBLIC_USER
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow