λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> λογισμικού βάσεων δεδομένων

Πώς να βρείτε ένα έγκυρος αριθμός σε μια Oracle Πίνακας

Άκυρα αριθμούς σε πίνακες Oracle μπορεί να είναι απογοητευτικό και να προκαλέσει καλοσχηματισμένα κώδικα για να συμπεριφερθεί με απροσδόκητους τρόπους και ανεπιθύμητες , με αποτέλεσμα την Oracle ORA - 01722 error . Το άκυρο λάθος αριθμό στο Oracle προκύπτει , μερικές φορές σε ένα φαινομενικά τυχαίο τρόπο , όταν ο κώδικας SQL είναι γραμμένο που χρησιμοποιεί μια στήλη που βασίζονται σε χαρακτήρες για μαθηματικές πράξεις και ένα μη αριθμητικό χαρακτήρα συναντήσει . Για να κάνετε τα πράγματα χειρότερα , το σφάλμα αυτό δεν θα συμβαίνει πάντοτε , ακόμη και αν πληρούνται οι προϋποθέσεις για να είναι ικανοποιημένοι . Αυτό οφείλεται κυρίως στον τρόπο ένας πίνακας διασχίζεται όταν σαρώνεται για το ταίριασμα των δεδομένων. Τα πράγματα που θα χρειαστείτε
βάση δεδομένων Oracle
πίνακα με μια στήλη VARCHAR2
δεδομένων τόσο της αριθμητικής και μη - αριθμητικό τύπο στη στήλη
VARCHAR2
Παρουσίαση Περισσότερες οδηγίες
Αποφύγετε το λάθος πριν αυτό συμβαίνει
Η 1

Δημιουργήστε έναν πίνακα με κατάλληλα ορισμένες στήλες . Για παράδειγμα :

CREATE TABLE numbers_and_words

( number_col AS αριθμό , πώληση

word_col AS varchar2 ( 100 ) ) 2

Πρόγραμμα η αίτηση τοποθετήστε μόνο αριθμητικά δεδομένα στη στήλη number_col και τα στοιχεία του χαρακτήρα στη στήλη word_col .
εικόνων 3

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

Γράψτε μια συνάρτηση για να πιάσει μη αριθμητικά δεδομένα . Ένα παράδειγμα :

CREATE FUNCTION is_numeric (οδός ΣΕ VARCHAR2 )

ΑΡΙΘΜΟΣ ΕΠΙΣΤΡΟΦΗ

IS

αναμέτρησης ΑΡΙΘΜΟΣ ?

BEGIN

αριθμός : = TO_NUMBER ( str ) ?

RETURN 1 ?

ΕΞΑΙΡΕΣΗ

όταν οι άλλοι ΤΟΤΕ

επιστροφή 0?

ΤΕΛΟΣ ?
5

Γράψτε μια προβολή που χρησιμοποιεί τη λειτουργία για να δημιουργήσει μια αναπαράσταση του πίνακα χωρίς μη αριθμητικά δεδομένα . Υποθέτοντας ότι το όνομα του πίνακα είναι t1 και η στήλη με το μικτό δεδομένων ονομάζεται " mixed_col , " μια αριθμητική προβολή μόνο θα μπορούσε να γραφτεί ως εξής :

CREATE VIEW numbersonly AS

ΕΠΙΛΟΓΗ ΑΠΟ mixed_col t1

πΟΥ is_numeric ( mixed_col ) = 1
Η 6

Χρησιμοποιήστε το numbersonly θέα σε ερωτήματα που πρέπει να κάνετε αριθμητικές λειτουργίες που βασίζονται στη στήλη. Για παράδειγμα :

SELECT * FROM numbersonly

ΠΟΥ mixed_col > 35
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα