Արդյո՞ք Raise_application_error-ը հետ է վերադարձվում:
Արդյո՞ք Raise_application_error-ը հետ է վերադարձվում:

Video: Արդյո՞ք Raise_application_error-ը հետ է վերադարձվում:

Video: Արդյո՞ք Raise_application_error-ը հետ է վերադարձվում:
Video: Hakob Hakobyan & Armen Hovhannisyan - ARDYOQ OVQER EN 2024, Մայիս
Anonim

Ձգանի ներսում ա RAISE_APPLICATION_ERROR անում է չկատարել ա ՀԵՏԱԴԱՐՁ , այն ընդհատում է ընթացիկ գործողությունը, այսինքն՝ մեկ UPDATE/INSERT/DELETE: Ա Վերադարձ հետ է վերադարձնում բոլոր փոփոխությունները ընթացիկ գործարքի շրջանակներում (կամ մինչև տվյալ Savepoint-ը), դա տարբեր է:

Այս կերպ ի՞նչ է Raise_application_error-ը:

Պատասխանել բարձրացնել_դիմում_սխալը Իրականում Oracle-ի կողմից սահմանված ընթացակարգ է, որը ծրագրավորողին թույլ է տալիս բացառություն բարձրացնել և սխալի համարը և հաղորդագրությունը կապել ընթացակարգի հետ: Oracle-ն ապահովում է բարձրացնել_դիմում_սխալը ընթացակարգ, որը թույլ է տալիս բարձրացնել ձեր դիմումների մեջ հատուկ սխալի համարները:

Ավելին, ի՞նչ կլինի, երբ հետադարձ հայտարարությունը կատարվի ձգանի ներսում: Երբ որ ձգան հրդեհներ ընթացիկ գործարքը դեռ ավարտված չէ. Քանի որ COMMIT-ը դադարեցնում է գործարքը, որը թույլ է տալիս նրանց գործարկիչներում կլիներ կոտրել աշխատանքի միավորը. Այսպիսով, փոփոխությունները կատարվում է ձգանով կատարվել են (կամ հետ են վերադարձվել) սեփականատիրոջ գործարքի կողմից, որը թողարկել է DML-ն, որն արձակել է այն ձգան.

Դրանցից ո՞րն է տարբերությունը Pragma Exception_init-ի և Raise_application_error-ի միջև:

պրագմա բացառիկ init-ը Oracle-ի սխալը վերածում է անվանված բացառության: Եթե տվյալների բազայի գործողությունը բարձրացնում է ORA-00054 «ռեսուրս զբաղված», դուք պետք է կոդավորեք. Բարձրացնել_հայտի_սխալը օգտագործվում է սխալ բարձրացնելու համար. բացառություն_սկզբում օգտագործվում է սխալների դեմ պայքարելու համար (կարծում եմ, դուք կարող եք ասել, որ դրանք հակադիր են մեջ ճանապարհ):

Ի՞նչ է Sqlerrm-ը:

SQLERRM Գործառույթ. Գործառույթը SQLERRM վերադարձնում է սխալի հաղորդագրությունը՝ կապված իր error-number արգումենտի հետ: Եթե արգումենտը բաց է թողնվել, այն վերադարձնում է SQLCODE-ի ընթացիկ արժեքի հետ կապված սխալի հաղորդագրությունը: SQLERRM առանց արգումենտի օգտակար է միայն բացառությունների մշակման դեպքում:

Խորհուրդ ենք տալիս: