υπολογιστή

* Γνώση Υπολογιστών >> υπολογιστή >> Λογισμικό

Πώς να αποκτήσετε όλα τα ονόματα στηλών σε μια βάση δεδομένων Oracle Database

Οι βάσεις δεδομένων της Oracle οργανώνουν τους πίνακες στους λογαριασμούς κατόχων που ονομάζονται σχήματα. Οι χρήστες βάσεων δεδομένων με διαφορετικά προνόμια μπορούν να αναζητήσουν τα μεταδεδομένα βάσης δεδομένων - που ονομάζονται "λεξικό δεδομένων" - για να απαριθμήσουν πληροφορίες, συμπεριλαμβανομένων των ονομάτων των στηλών, των αδειών αντικειμένων ή των στατιστικών αντικειμένων. Για να αποκτήσετε ονόματα στηλών από πίνακες ή προβολές σε διακομιστή βάσης δεδομένων Oracle, εκτελέστε ένα σύντομο ερώτημα χρησιμοποιώντας το καταλληλότερο αντικείμενο λεξικό δεδομένων. Η προβολή USER_TAB_COLS εμφανίζει αντικείμενα που ανήκουν στον χρήστη που έχει συνδεθεί, ενώ το ALL_TAB_COLS εμφανίζει όλα τα αντικείμενα που διαθέτει ο χρήστης, δίνοντας τα δικαιώματά του και το DBA_TAB_COLS εμφανίζει τα πάντα στη βάση δεδομένων, ανεξάρτητα από τον λογαριασμό χρήστη που κατέχει το αντικείμενο. Βήμα 1

Εκτελέστε ένα τυπικό ερώτημα SQL για να επιστρέψετε αποτελέσματα από την πιο κατάλληλη προβολή συστήματος. Ένα βασικό ερώτημα εμφανίζεται στη φόρμα: SELECT * FROM USER_TAB_COLS; Αντικαταστήστε ALL_TAB_COLS ή DBA_TAB_COLS ανάλογα με την περίπτωση. Το σύμβολο "*" επιστρέφει όλες τις στήλες στο ερώτημα

Βήμα 2

Περιορίστε τα δεδομένα που επιστρέφονται στο ερώτημα αντικαθιστώντας το "select *" με μια πιο στοχευμένη λίστα στηλών από την προβολή λεξικού. Για να επιστρέψετε μόνο το σχήμα, το όνομα του πίνακα και το όνομα της στήλης για αντικείμενα που μπορεί να έχει πρόσβαση ο λογαριασμός που έχει συνδεθεί, χρησιμοποιήστε: SELECT owner, table_name, column_name FROM ALL_TAB_COLS,

Περιορίστε τα αντικείμενα που επιστρέφουν περιορίζοντας τα αποτελέσματά σας με μια ρήτρα "where". Για παράδειγμα, για να επιστρέψετε μόνο τα ονόματα στηλών για τους πίνακες που κατέχει ο χρήστης που είναι συνδεδεμένος και που ξεκινούν με το γράμμα "A", χρησιμοποιήστε: SELECT * FROM USER_TAB_COLS WHERE table_name LIKE 'A%',

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

Η Oracle προσφέρει επίσης προβολές ALL_TAB_COLUMNS, USER_TAB_COLUMNS και DBA_TAB_COLUMNS. Αυτά τα αντικείμενα διαφέρουν από αυτά που τελειώνουν στο "COLS" φιλτράροντας ορισμένες κρυφές στήλες. Στις περισσότερες περιπτώσεις, θα λάβετε τις πληροφορίες που χρειάζεστε ανεξάρτητα από το σύνολο των προβολών που χρησιμοποιείτε.

Προειδοποιήσεις

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

Για να υποβάλετε ερώτημα σε οποιοδήποτε αντικείμενο λεξικό δεδομένων που έχει προταθεί με DBA, ο λογαριασμός που έχει συνδεθεί πρέπει να έχει δικαιώματα "επιλογής" σε αυτές τις προβολές ή να έχει αντιστοιχιστεί το SELECT_CATALOG_ROLE της Oracle. Στις περισσότερες περιπτώσεις, οι πίνακες DBA πρέπει να καθορίζουν το πρόθεμα του SYS, π.χ. "SELECT * FROM SYS.DBA_TAB_COLS;" ή ισοδύναμο.

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

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