Sådan får du alle søjlenavne i en Oracle-database

Oracle-databaser organiserer tabeller i ejerkonti kaldet skemaer. Databasebrugere med forskellige privilegier kan forespørge databasemetadataene - kaldet "dataordbog" - for at liste oplysninger inklusive kolonnenavne, objekttilladelser eller objektstatistikker. For at hente kolonnenavne fra tabeller eller visninger på en Oracle-databaseserver skal du køre en kort forespørgsel ved hjælp af det mest passende dataordbog-objekt. USER_TAB_COLS-visningen viser objekter, der ejes af den indloggede bruger, mens ALL_TAB_COLS viser alle objekter, der er tilgængelige for brugeren givet hans tilladelser, og DBA_TAB_COLS viser alt i databasen uanset hvilken brugerkonto, der ejer objektet.

Trin 1

Udfør en standard SQL-forespørgsel for at returnere resultater fra den mest passende systemvisning. En grundlæggende forespørgsel vises i form:

VÆLG * FRA USER_TAB_COLS;

Udskift ALL_TAB_COLS eller DBA_TAB_COLS efter behov. Symbolet "*" returnerer alle kolonner i forespørgslen.

Trin 2

Begræns de data, der returneres i forespørgslen, ved at erstatte "vælg *" med en mere målrettet liste over kolonner fra ordbogens visning. For kun at returnere skemaet, tabelnavnet og kolonnenavnet for objekter, som den indloggede konto kan få adgang til, skal du bruge:

VÆLG ejer, tabelnavn, kolonnenavn FRA ALL_TAB_COLS;

Begræns hvilke objekter, der vender tilbage, ved at begrænse dine resultater med en "hvor" -klausul. Hvis du f.eks. Kun vil returnere kolonnenavne for tabeller, som den bruger, der er logget ind, og som starter med bogstavet "A", skal du bruge:

VÆLG * FRA USER_TAB_COLS HVOR tabelnavn LIGE 'A%';