Μάθετε πώς να χειρίζεστε εξαιρέσεις στο PL / SQL

Αυτό το άρθρο είναι ένας ολοκληρωμένος οδηγός για τον τρόπο εκτέλεσης του χειρισμού εξαιρέσεων σε PL / SQL συζητώντας τους διάφορους τύπους εξαιρέσεων που προσφέρονται στο PL / SQL.

Εάν είστε προγραμματιστής, ίσως εξοικειωθείτε με την έννοια του χειρισμού εξαιρέσεων που αποτελεί αναπόσπαστο μέρος οποιουδήποτε . Καθώς τα σφάλματα είναι αναπόφευκτα και ακόμη και οι πιο έξυπνοι από εμάς μπορούν να κάνουν λάθη κατά τη σύνταξη κώδικα, πρέπει να γνωρίζουμε πώς να τα χειριστούμε. Σε αυτό το άρθρο, θα μάθουμε ιδιαίτερα για τον χειρισμό εξαιρέσεων στο PL / SQL.



Διαχείριση SQL-Exception στο PL / SQL-EdurekaΑκολουθούν τα θέματα που καλύπτονται σε αυτό το άρθρο:



Τι είναι μια εξαίρεση;

Οποιαδήποτε μη φυσιολογική κατάσταση ή συμβάν που διακόπτει την κανονική ροή των οδηγιών του προγράμματος κατά το χρόνο εκτέλεσης ή με απλές λέξεις μια εξαίρεση είναι ένα σφάλμα.

Σύνταξη Εξαίρεσης χειρισμού σε PL / SQL

ΔΗΛΩΣΗ ΕΚΤΕΛΕΣΗΣ ΕΞΑΙΡΕΣΗΣ ΠΟΤΕ εξαίρεση1 Τότε εξαίρεση1-χειρισμός-δηλώσεις ΠΟΤΕ εξαίρεση2 Τότε εξαίρεση2-χειρισμός-δηλώσεις ΠΟΤΕ εξαίρεση3 Τότε εξαίρεση3-χειρισμός-δηλώσεις ........ ΟΤΑΝ ΑΛΛΟΙ ΤΟΤΕ εξαίρεση

Εδώ, μπορούμε να απαριθμήσουμε όσες εξαιρέσεις θέλουμε να χειριστούμε. Η προεπιλεγμένη εξαίρεση θα αντιμετωπιστεί χρησιμοποιώντας το 'WHEN other THEN'



Παράδειγμα Εξαίρεσης χειρισμού σε PL / SQL

Το παρακάτω πρόγραμμα εμφανίζει το όνομα και τη διεύθυνση ενός μαθητή του οποίου δίνεται το αναγνωριστικό. Δεδομένου ότι δεν υπάρχει μαθητής με τιμή ID 8 στη βάση δεδομένων μας, το πρόγραμμα δημιουργεί την εξαίρεση χρόνου εκτέλεσης NO_DATA_FOUND, η οποία καταγράφεται στο μπλοκ EXCEPTION.

DECLARE s_id studentS.id% type: = 8 s_name studentS.Name% type s_loc studentS.loc% type BEGIN SELECT name, loation INTO s_name, s_loc FROM students WHERE id = s_id DBMS_OUTPUT.PUT_LINE ('Όνομα:' || s_name) DBMS_OUT .PUT_LINE ('Τοποθεσία:' || s_loc) ΕΞΑΙΡΕΣΗ ΠΟΤΕ no_data_found THEN dbms_output.put_line ('Χωρίς τέτοιο μαθητή!') ΠΟΤΕ άλλοι ΤΟΤΕ dbms_output.put_line ('Ωχ, Σφάλμα!') ΤΕΛΟΣ

Παραγωγή

Κανένας τέτοιος μαθητής! Η διαδικασία PL / SQL ολοκληρώθηκε με επιτυχία.

Εδώ, μπορούμε να απαριθμήσουμε όσες εξαιρέσεις θέλουμε να χειριστούμε. Η προεπιλεγμένη εξαίρεση θα αντιμετωπιστεί χρησιμοποιώντας το ' ΟΤΑΝ ΑΛΛΟ ΤΟ '

Τύποι εξαιρέσεων σε PL / SQL

  • Καθορισμένο σύστημα
  • Ο χρήστης αψήφησε

Στη συνέχεια σε αυτό το άρθρο σχετικά με τον χειρισμό εξαιρέσεων στο PL / SQL , ας συζητήσουμε λεπτομερώς και για τους δύο αυτούς τύπους.



Καθορισμένο σύστημα

Ορίζονται και συντηρούνται σιωπηρά από τον διακομιστή Oracle, αυτές οι εξαιρέσεις ορίζονται κυρίως στο Oracle Standard Package. Κάθε φορά που υπάρχει εξαίρεση στο πρόγραμμα, ο διακομιστής Oracle ταιριάζει και προσδιορίζει την κατάλληλη εξαίρεση από το διαθέσιμο σύνολο εξαιρέσεων που διατίθεται στο τυπικό πακέτο της Oracle. Βασικά, αυτές οι εξαιρέσεις είναι προκαθορισμένες PL / SQL που μεγαλώνει ΠΟΤΕ παραβιάζεται συγκεκριμένος κανόνας βάσης δεδομένων .

ο Εξαιρέσεις που καθορίζονται από το σύστημα χωρίζονται περαιτέρω σε δύο κατηγορίες:

  • Ονομαστικές εξαιρέσεις συστήματος
  • Εξαιρέσεις συστήματος χωρίς όνομα

Εξαιρέσεις με το όνομα του συστήματος

Οι ονομαστικές εξαιρέσεις PL / SQL είναι ονομάζεται στο τυπικό πακέτο PL / SQL , ως εκ τούτου ο προγραμματιστής δεν χρειάζεται να ορίσει τις εξαιρέσεις PL / SQL στον κώδικά τους. Το PL / SQL παρέχει πολλές προκαθορισμένες εξαιρέσεις με όνομα, οι οποίες εκτελούνται όταν παραβιάζεται οποιοσδήποτε κανόνας βάσης δεδομένων από ένα πρόγραμμα. Ο παρακάτω πίνακας παραθέτει μερικές από τις σημαντικές προκαθορισμένες εξαιρέσεις και μείον

Εξαίρεση Σφάλμα Oracle SQLCODE Περιγραφή
ACCESS_INTO_NULL06530-6530Αυξάνεται όταν ένα μηδενικό αντικείμενο εκχωρείται αυτόματα μια τιμή.
CASE_NOT_FOUND06592-6592Αυτό εγείρεται όταν καμία από τις επιλογές στο ΠΟΤΕ όρος του α Δήλωση CASE έχει επιλεγεί και δεν υπάρχει ρήτρα ELSE.
COLLECTION_IS_NULL06531-6531Εμφανίζεται όταν ένα πρόγραμμα προσπαθεί να εφαρμόσει μεθόδους συλλογής εκτός από EXISTS σε έναν μη αρχικοποιημένο ένθετο πίνακα ή varray, ή το πρόγραμμα επιχειρεί να αντιστοιχίσει τιμές στα στοιχεία ενός μη αρχικοποιημένου ένθετου πίνακα ή varray.
DUP_VAL_ON_INDEX00001-έναςΑυξάνεται όταν οι διπλές τιμές επιχειρούνται να αποθηκευτούν σε μια στήλη με ένα μοναδικό ευρετήριο.
INVALID_CURSOR01001-1001Αυξάνεται όταν γίνονται προσπάθειες για τη λειτουργία ενός δρομέα που δεν επιτρέπεται, όπως το κλείσιμο ενός κλειστού δρομέα.
INVALID_NUMBER01722-1722Αυξάνεται όταν η μετατροπή μιας συμβολοσειράς χαρακτήρων σε έναν αριθμό αποτυγχάνει επειδή η συμβολοσειρά δεν αντιπροσωπεύει έναν έγκυρο αριθμό.
LOGIN_DENIED01017-1017Εμφανίζεται όταν ένα πρόγραμμα προσπαθεί να συνδεθεί στη βάση δεδομένων με μη έγκυρο όνομα χρήστη ή κωδικό πρόσβασης.
ΔΕ ΒΡΕΘΗΚΑΝ ΔΕΔΟΜΕΝΑ01403+100Αυξάνεται όταν μια δήλωση SELECT INTO δεν επιστρέφει σειρές.
NOT_LOGGED_ON01012-1012Αυξάνεται όταν μια κλήση βάσης δεδομένων εκδίδεται χωρίς σύνδεση στη βάση δεδομένων.
PROGRAM_ERROR06501-6501Αυξάνεται όταν το PL / SQL έχει εσωτερικό πρόβλημα.
ROWTYPE_MISMATCH06504-6504Αυξάνεται όταν ένας δρομέας παίρνει την τιμή σε μια μεταβλητή που έχει ασύμβατο τύπο δεδομένων.
SELF_IS_NULL30625-30625Εμφανίζεται όταν καλείται μια μέθοδος μέλους, αλλά η παρουσία του τύπου αντικειμένου δεν είχε αρχικοποιηθεί.
STORAGE_ERROR06500-6500Αυξάνεται όταν το PL / SQL εξαντλήθηκε η μνήμη ή η μνήμη είχε καταστραφεί.
TOO_MANY_ROWS01422-1422Αυξάνεται όταν μια δήλωση SELECT INTO επιστρέφει περισσότερες από μία σειρές.
VALUE_ERROR06502-6502Αυξάνεται όταν εμφανίζεται ένα αριθμητικό, μετατροπή, περικοπή ή σφάλμα περιορισμού μεγέθους.
ZERO_DIVIDE014761476Αυξάνεται όταν γίνεται προσπάθεια διαίρεσης ενός αριθμού με μηδέν.

Παράδειγμα

Σύσταση ή την αντικατάσταση ΔΙΑΔΙΚΑΣΙΑ add_new_student (φοιτητής _id_in σε αριθμό, φοιτητής _name_in ΣΤΟΝ VARCHAR2) ΕΙΝΑΙ ΝΑ ΑΡΧΙΣΕΙ φοιτητής INSERT INTO (_id φοιτητής, μαθητής _name) ΤΙΜΕΣ (_id_in φοιτητής, μαθητής _name_in) την εξαίρεση, όταν DUP_VAL_ON_INDEX ΤΟΤΕ raise_application_error (-20.001, 'Διπλότυπο φοιτητής _id' ) ΠΟΤΕ ΑΛΛΟ ΤΟΤΕ αύξηση_application_error (-20002, 'Παρουσιάστηκε σφάλμα.') ΤΕΛΟΣ

Προχωρώντας σε αυτό το άρθρο σχετικά με τον χειρισμό εξαιρέσεων σε PL / SQL, ας καταλάβουμε τι είναι οι εξαιρέσεις συστήματος χωρίς όνομα.

Εξαιρέσεις συστήματος χωρίς όνομα

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

Υπάρχουν βασικά δύο τρόποι χειρισμού εξαιρέσεων συστήματος χωρίς όνομα:

1. Χρήση του χειριστή εξαίρεσης WHEN OTHERS

2. Συσχέτιση του κωδικού εξαίρεσης με ένα όνομα και χρήση ως εξαίρεση με όνομα.

Ορισμένα βήματα που ακολουθούνται για εξαιρέσεις συστήματος χωρίς όνομα είναι:

  • Αυξήστε τους σιωπηρά.
  • Σε περίπτωση που δεν αντιμετωπιστούν στο 'WHEN Other' τότε, πρέπει να αντιμετωπιστούν ρητά.
  • Για να χειριστεί την εξαίρεση ρητά, μπορούν να δηλωθούν χρησιμοποιώντας το Pragma EXCEPTION_INIT και να αντιμετωπιστούν με αναφορά στο όνομα εξαίρεσης που καθορίζεται από τον χρήστη στην ενότητα εξαίρεσης.

Ένα παράδειγμα χειρισμού εξαιρέσεων χωρίς όνομα χρησιμοποιώντας το Pragma EXCEPTION_INIT παρέχεται αργότερα στο άρθρο. Προχωρώντας σε αυτό το άρθρο σχετικά με τον χειρισμό εξαιρέσεων σε PL / SQL, ας κατανοήσουμε τις εξαιρέσεις που καθορίζονται από το χρήστη.

Ορισμένο από τον χρήστη

Όπως όλες οι άλλες γλώσσες προγραμματισμού, το Oracle σας επιτρέπει επίσης να δηλώσετε ότι η διαφήμιση εφαρμόζει τις δικές σας εξαιρέσεις. Σε αντίθεση με τις εξαιρέσεις που ορίζονται από το Σύστημα, αυτές οι εξαιρέσεις δημιουργούνται ρητά στο μπλοκ PL / SQL.

Βήματα για τη δήλωση εξαιρέσεων που καθορίζονται από τον χρήστη στη βάση δεδομένων Oracle

Μπορούμε να ορίσουμε εξαιρέσεις που καθορίζονται από τον χρήστη στη βάση δεδομένων Oracle με τους ακόλουθους 3 τρόπους:

  • Χρησιμοποιώντας μεταβλητή τύπου EXCEPTION

Εδώ, μπορούμε να δηλώσουμε μια εξαίρεση καθορισμένη από τον χρήστη, δηλώνοντας μια μεταβλητή του EXCEPTION Τύπος δεδομένων στον κώδικά μας και να τον αυξήσετε ρητά στο πρόγραμμά μας χρησιμοποιώντας τη δήλωση RAISE.

  • Χρήση της συνάρτησης PRAGMA EXCEPTION_INIT

Μπορούμε να καθορίσουμε έναν μη προκαθορισμένο αριθμό σφάλματος με τη μεταβλητή του τύπου δεδομένων EXCEPTION

  • Χρήση της μεθόδου RAISE_APPLICATION_ERROR

Χρησιμοποιώντας αυτήν τη μέθοδο, μπορούμε να δηλώσουμε μια εξαίρεση που καθορίζεται από τον χρήστη με τον δικό μας προσαρμοσμένο αριθμό σφάλματος και μήνυμα.

Μέχρι τώρα μπορεί να έχετε μια γενική ιδέα για τους τρόπους με τους οποίους μπορούμε να αυξήσουμε τις εξαιρέσεις που καθορίζονται από το χρήστη στο PL / SQL. Θα μάθουμε για καθεμία από τις παραπάνω μεθόδους με παραδείγματα περαιτέρω σε αυτό το άρθρο σχετικά με τον χειρισμό εξαιρέσεων σε PL / SQL.

Στη συνέχεια σε αυτό το άρθρο, ας προχωρήσουμε με τις επιδείξεις χειρισμού εξαιρέσεων που καθορίζονται από το χρήστη.

Επίδειξη εξαιρέσεων καθορισμένων από το χρήστη

Προχωρώντας σε αυτό το άρθρο σχετικά με το Exception Handling σε PL / SQL, ας καταλάβουμε πώς να χρησιμοποιήσουμε τη μεταβλητή του τύπου EXCEPTION.

Χρησιμοποιώντας μεταβλητή τύπου EXCEPTION

Η διαδικασία δήλωσης εξαίρεσης που καθορίζεται από τον χρήστη χωρίζεται σε τρία μέρη και αυτά τα 3 μέρη είναι:

  • Δηλώστε έναν τύπο δεδομένων εξαίρεσης μεταβλητής
  • Αυξήστε την εξαίρεση
  • Χειριστείτε την εξαίρεση

Ας γράψουμε έναν κώδικα για να δείξουμε λεπτομερώς τα παραπάνω βήματα.

ΑΠΟΚΛΗΣΗ ΑΡΙΘΜΟΥ var_dividend: = 10 var_divisor NUMBER: = 0 var_result NUMBER ex-DivZero EXCEPTION

Στο παραπάνω μπλοκ δήλωσης, έχουμε τέσσερις μεταβλητές, μεταξύ των οποίων οι πρώτες τρεις είναι κανονικές μεταβλητές τύπου δεδομένων και η τέταρτη που είναι ex_DivZero είναι η ειδική εξαίρεση τύπος δεδομένων. Το τέταρτο είναι η εξαίρεση που καθορίζεται από τον χρήστη.

ΑΠΟΚΛΗΣΗ ΑΡΙΘΜΟΥ var_dividend: = 10 var_divisor NUMBER: = 0 var_result NUMBER ex-DivZero EXCEPTION

Το παραπάνω μέρος εκτέλεσης αυτού του ανώνυμου μπλοκ, θα τεθεί σε δράση μόνο όταν ο διαιρέτης είναι 0. Εάν ο διαιρέτης είναι μηδέν όπως είναι στην περίπτωσή μας, το σφάλμα θα αυξηθεί και ο έλεγχος του προγράμματος θα παραλείψει όλα τα επόμενα βήματα και θα αναζητήσει αντίστοιχο χειριστή εξαιρέσεων. Σε περίπτωση που εντοπίσει οποιοδήποτε άλλο, θα εκτελέσει την ενέργεια ανάλογα, διαφορετικά θα τερματίσει το πρόγραμμα ή θα μας ζητήσει ένα σφάλμα που δεν έχει χειριστεί το σύστημα.

ΕΞΑΙΡΕΣΗ ΟΤΑΝ ex_DivZero THEN DBMS_OUTPUT.PUT_LINE («ΣΦΑΛΜΑ, ο διαιρέτης δεν μπορεί να είναι μηδέν»)

Αυτός είναι ο χειριστής εξαιρέσεων. Μόλις ο χρήστης εισαγάγει το διαιρέτη ως 0, θα εμφανιστεί η παραπάνω συμβολοσειρά μηνυμάτων.

Τελικός κωδικός:

υπερφόρτωση μεθόδου και παράκαμψη μεθόδου
ΑΝΑΚΑΛΥΨΤΕ ΑΡΙΘΜΟΣ var_dividend: = 10 var_divisor ΑΡΙΘΜΟΣ: = 0 var_result ΑΡΙΘΜΟΣ ex-DivZero ΕΞΑΙΡΕΣΗ ΑΡΧΙΚΗ ΕΑΝ var_divisor = 0 ΤΟ ΣΥΣΚΕΥΗ ex-DivZero ΤΕΛΟΣ ΕΑΝ Var_result: = var_dividend / var_divisor DBMS_OUTPUT.PUT_LINE ('Result = 0 THEN RAISE ex-DivZero END IF Var_result: = var_dividend / var_divisor DBMS_OUTPUT.PUT_LINE ('Αποτέλεσμα =' || var_result) ΤΕΛΟΣ

Προχωρώντας σε αυτό το άρθρο σχετικά με τον χειρισμό εξαιρέσεων σε PL / SQL, ας καταλάβουμε πώς να χρησιμοποιήσουμε τη μέθοδο PRAGMA_EXCEPTION_INIT.

Χρήση της συνάρτησης PRAGMA EXCEPTION_INIT

Στο Συνάρτηση PRAGMA EXCEPTION_INIT, ένα όνομα εξαίρεσης σχετίζεται με έναν αριθμό σφάλματος Oracle. Αυτό το όνομα μπορεί να χρησιμοποιηθεί στο σχεδιασμό του χειριστή εξαιρέσεων για το σφάλμα.Για τεράστια έργα με πολλά σφάλματα που ορίζονται από το χρήστη, το PRAGMA EXCEPTION_INIT είναι η πιο χρήσιμη και κατάλληλη μέθοδος.

Σύνταξη:

PRAGMA EXCEPTION_INIT (όνομα_εξαίρεσης, -Oracle_error_number)

Παράδειγμα

DECLARE deadlock_detected EXCEPTION PRAGMA EXCEPTION_INIT (deadlock_detected, -60) BEGIN NULL - Κάποια λειτουργία που προκαλεί σφάλμα ORA-00060 ΕΞΑΙΡΕΣΗ ΟΤΑΝ deadlock_detected THEN NULL - χειριστείτε το σφάλμα ΤΕΛΟΣ

Το PRAGMA EXCEPTION_INIT λέει στον μεταγλωττιστή να συσχετίσει ένα όνομα εξαίρεσης με έναν αριθμό σφάλματος Oracle όπως αναφέρθηκε προηγουμένως. Σας επιτρέπει να αναφέρετε οποιαδήποτε εσωτερική εξαίρεση με το όνομα και να γράψετε έναν συγκεκριμένο χειριστή για αυτό. Όταν βλέπετε μια στοίβα σφαλμάτων ή μια ακολουθία μηνυμάτων σφάλματος, αυτή που βρίσκεται στην κορυφή είναι αυτή που μπορεί να παγιδευτεί και να αντιμετωπιστεί.

Προχωρώντας σε αυτό το άρθρο σχετικά με την Εξαίρεση χειρισμού σε PL / SQL, ας καταλάβουμε πώς να χρησιμοποιήσουμε τη μέθοδο RAISE_APPLICATION_ERROR.

Χρήση της μεθόδου RAISE_APPLICATION_ERROR

Είναι μια διαδικασία που ενσωματώνεται στο λογισμικό της oracle. Χρησιμοποιώντας αυτήν τη διαδικασία μπορούμε να συσχετίσουμε έναν αριθμό σφάλματος με ένα προσαρμοσμένο μήνυμα σφάλματος. Συνδυάζοντας τόσο τον αριθμό σφάλματος όσο και το προσαρμοσμένο μήνυμα σφάλματος, μπορεί να συντεθεί μια συμβολοσειρά σφάλματος που μοιάζει με εκείνες των προεπιλεγμένων συμβολοσειρών σφάλματος που εμφανίζονται από το oracle όταν παρουσιάζεται σφάλμα. Η διαδικασία RAISE_APPLICATION_ERROR βρίσκεται στο πακέτο DBMS_STANDARD

Σύνταξη

raise_application_error (error_number, message [, TRUE])

Παράδειγμα

/ * Δημιουργείται μια σκανδάλη trg_emp_detail_chk. * / ΔΗΜΙΟΥΡΓΙΑ Ή ΑΝΤΙΚΑΤΑΣΤΑΣΗ TRIGGER trg_emp_detail_chk / * Ο χρόνος ενεργοποίησης δηλώνεται ως ΠΡΙΝ ΕΝΗΜΕΡΩΣΗ στον πίνακα ΕΡΓΑΖΟΜΕΝΩΝ. Η ημέρα της ώρας του συστήματος είναι είτε Σάββατο είτε Κυριακή είτε όχι. * / IF τελειώστε (TO_CHAR (sysdate, 'Day')) IN ('Saturday', 'Sunday') THEN raise_application_error (-20000, 'Δεν έχετε εξουσιοδότηση να κάνετε οποιαδήποτε τροποποίηση τα σαββατοκύριακα !! ') / * Η διαδικασία raise_application_error καλείται με την πρώτη τιμή παραμέτρου ως -20000 και η δεύτερη παράμετρος με προεπιλεγμένο κείμενο που δηλώνει ότι ο χρήστης δεν έχει εξουσιοδότηση να κάνει οποιαδήποτε τροποποίηση τα σαββατοκύριακα. * / ΤΕΛΟΣ ΕΑΝ ΤΕΛΟΣ

Με αυτό καταλήγουμε στο τέλος αυτού του άρθρου σχετικά με την «Εξαίρεση χειρισμού σε PL / SQL». Ελπίζω αυτό το θέμα να γίνει κατανοητό και να σας βοήθησε. Προσπαθήστε να γράψετε τους δικούς σας κωδικούς και να ενσωματώσετε τις μεθόδους που εξηγούνται σε αυτό το άρθρο.

Αν θέλετε να εκπαιδευτείτε από επαγγελματίες σε αυτήν την τεχνολογία, μπορείτε να επιλέξετε δομημένη εκπαίδευση από το edureka! Δείτε αυτό από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Αυτό το μάθημα σας εκπαιδεύει στις βασικές έννοιες και προηγμένα εργαλεία και τεχνικές για τη διαχείριση δεδομένων και τη διαχείριση της βάσης δεδομένων MySQL. Περιλαμβάνει πρακτική μάθηση σε έννοιες όπως MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions κ.λπ. Στο τέλος της εκπαίδευσης θα μπορείτε να δημιουργήσετε και να διαχειριστείτε τη δική σας βάση δεδομένων MySQL και να διαχειριστείτε δεδομένα.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του άρθρου 'Εξαίρεση χειρισμού σε PL / SQL' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.