Vairāk
Iegūt visu Oracle tabulu sarakstu?
Kā veikt Oracle datubāzes vaicājumu, lai parādītu visu tajā esošo tabulu nosaukumus?
1069
3
Kā veikt Oracle datubāzes vaicājumu, lai parādītu visu tajā esošo tabulu nosaukumus?
Tiek pieņemts, ka jums ir piekļuve
DBA_TABLES
datu vārdnīcas skatam. Ja jums nav šo privilēģiju, bet tās ir nepieciešamas, varat lūgt, lai DBA skaidri piešķir jums privilēģijas attiecībā uz šo tabulu, vai arī lai DBA piešķir jumsSELECT ANY DICTIONARY
privilēģijas vaiSELECT_CATALOG_ROLE
lomu (abas šīs tiesības ļautu jums veikt vaicājumus jebkurā datu vārdnīcas tabulā). Protams, jūs varat izslēgt dažas shēmas, piemēram,SYS
unSYSTEM
, kurās ir liels skaits Oracle tabulu, kas jums, iespējams, nav svarīgas.Ja jums nav piekļuves
DBA_TABLES
, varat arī apskatīt visas tabulas, kurām jūsu kontam ir piekļuve, izmantojot skatuALL_TABLES
:Lai gan tas var būt datu bāzē pieejamo tabulu apakškopa (
ALL_TABLES
parāda informāciju par visām tabulām, kurām jūsu lietotājam ir piešķirta piekļuve).Ja jūs interesē tikai tās tabulas, kas jums pieder, nevis tās, kurām jums ir piekļuve, varat izmantot
USER_TABLES
:Tā kā
USER_TABLES
satur informāciju tikai par tabulām, kas jums pieder, tajā nav slejasOWNER
- īpašnieks pēc definīcijas esat jūs.Oracle ir arī vairāki mantotie datu vārdnīcas skati, piemēram,
TAB
,DICT
,TABS
unCAT
, kurus var izmantot. Kopumā es nerekomendētu izmantot šos novecojušos skatījumus, ja vien jums nav obligāti nepieciešams atgriezt savus skriptus uz Oracle 6. Oracle jau ilgu laiku nav mainījis šos skatus, tāpēc tiem bieži ir problēmas ar jaunākiem objektu tipiem. Piemēram, ganTAB
, ganCAT
skatījumi parāda informāciju par tabulām, kas atrodas lietotāja atkritumu tvertnē, bet[DBA|ALL|USER]_TABLES
skatījumi tos visus filtrē.CAT
rāda arī informāciju par materializēto skatījumu žurnāliem arTABLE_TYPE
"TABLE", kas, visticamāk, nav tas, ko jūs patiešām vēlaties.DICT
apvieno tabulas un sinonīmus, un nepaziņo, kam pieder objekts.Vaicājot
user_tables
undba_tables
nestrādāja.Šis risinājums to izdarīja:
Mēģiniet atlasīt no user_tables, kurā ir uzskaitītas pašreizējam lietotājam piederošās tabulas.