Hoe u alle kolomnamen in een Oracle-database kunt krijgen

Oracle-databases organiseren tabellen in eigenaarsaccounts die schema's worden genoemd. Databasegebruikers met verschillende privileges kunnen de metadata van de database opvragen -- de "datadictionary" genoemd -- om informatie weer te geven, waaronder kolomnamen, objectmachtigingen of objectstatistieken. Om kolomnamen uit tabellen of weergaven op een Oracle-databaseserver te verkrijgen, voert u een korte query uit met het meest geschikte gegevenswoordenboekobject. De weergave USER_TAB_COLS toont objecten die eigendom zijn van de ingelogde gebruiker, terwijl ALL_TAB_COLS alle objecten toont die beschikbaar zijn voor de gebruiker met zijn machtigingen en DBA_TAB_COLS toont alles in de database, ongeacht welk gebruikersaccount eigenaar is van het object.

Stap 1

Voer een standaard SQL-query uit om resultaten te retourneren vanuit de meest geschikte systeemweergave. Er verschijnt een basisquery in het formulier:

SELECTEER * VAN USER_TAB_COLS;

Vervang ALL_TAB_COLS of DBA_TAB_COLS zoals van toepassing. Het "*"-symbool retourneert alle kolommen in de query.

Stap 2

Beperk de gegevens die in de query worden geretourneerd door "select *" te vervangen door een meer gerichte lijst met kolommen uit de woordenboekweergave. Als u alleen het schema, de tabelnaam en de kolomnaam wilt retourneren voor objecten waartoe het ingelogde account toegang heeft, gebruikt u:

SELECTEER eigenaar, tabelnaam, kolomnaam FROM ALL_TAB_COLS;

Beperk welke objecten terugkeren door uw resultaten te beperken met een "where"-clausule. Als u bijvoorbeeld alleen kolomnamen wilt retourneren voor tabellen waarvan de ingelogde gebruiker eigenaar is en die beginnen met de letter "A", gebruikt u:

SELECT * FROM USER_TAB_COLS WAAR tabelnaam LIKE 'A%';