Επιστρέφει το Raise_application_error;
Επιστρέφει το Raise_application_error;

Βίντεο: Επιστρέφει το Raise_application_error;

Βίντεο: Επιστρέφει το Raise_application_error;
Βίντεο: Το Σόι Σου Σ3 | Επεισόδιο 24 2024, Απρίλιος
Anonim

Μέσα σε μια σκανδάλη α Το RAISE_APPLICATION_ERROR κάνει δεν εκτελεί α ΑΝΤΙΣΤΡΟΦΗ , ματαιώνει την τρέχουσα λειτουργία, δηλαδή μια μεμονωμένη ΕΝΗΜΕΡΩΣΗ/ΕΙΣΑΓΩΓΗ/ΔΙΑΓΡΑΦΗ. ΕΝΑ Επαναφορά επαναφέρει όλες τις αλλαγές στην τρέχουσα συναλλαγή (ή μέχρι ένα δεδομένο σημείο αποθήκευσης), αυτό είναι διαφορετικό.

Με αυτόν τον τρόπο, τι είναι το Raise_application_error;

Απάντα το raise_application_error είναι στην πραγματικότητα μια διαδικασία που ορίζεται από την Oracle που επιτρέπει στον προγραμματιστή να εγείρει μια εξαίρεση και να συσχετίσει έναν αριθμό σφάλματος και ένα μήνυμα με τη διαδικασία. Η Oracle παρέχει το raise_application_error διαδικασία που σας επιτρέπει να αυξήσετε προσαρμοσμένους αριθμούς σφαλμάτων στις εφαρμογές σας.

Επιπλέον, τι θα συμβεί όταν εκτελεστεί μια δήλωση επαναφοράς μέσα σε έναν κανόνα; Οταν ο δώσει το έναυσμα για πυρκαγιές η τρέχουσα συναλλαγή δεν έχει ακόμη ολοκληρωθεί. Καθώς το COMMIT τερματίζει μια συναλλαγή επιτρέποντάς τους σε ερεθίσματα θα σπάστε τη μονάδα εργασίας. Αλλάζει λοιπόν εκτελείται σε σκανδάλη δεσμεύονται (ή επαναφέρονται) από την ιδιοκτήτρια συναλλαγή που εξέδωσε το DML που πυροδότησε το δώσει το έναυσμα για.

Επομένως, ποια είναι η διαφορά μεταξύ του Pragma Exception_init και του Raise_application_error;

πραγματισμός Η εξαίρεση init μετατρέπει ένα Σφάλμα Oracle σε μια επώνυμη εξαίρεση. Εάν μια λειτουργία βάσης δεδομένων εγείρει ένα ORA-00054 "resource busy", θα πρέπει να κωδικοποιήσετε:. Raise_application_error χρησιμοποιείται για να ΑΥΞΗΣΕΙ ένα σφάλμα - εξαίρεση_αρχή χρησιμοποιείται για την αντιμετώπιση σφαλμάτων (υποθέτω ότι θα μπορούσατε να πείτε ότι είναι αντίθετα σε ένα τρόπος).

Τι είναι το Sqlerrm;

SQLERRM Λειτουργία. Η λειτουργία SQLERRM επιστρέφει το μήνυμα σφάλματος που σχετίζεται με το όρισμα του αριθμού σφάλματος. Εάν το όρισμα παραλειφθεί, επιστρέφει το μήνυμα σφάλματος που σχετίζεται με την τρέχουσα τιμή του SQLCODE. SQLERRM χωρίς όρισμα είναι χρήσιμο μόνο σε έναν χειριστή εξαιρέσεων.

Συνιστάται: