Gaukite visų „Oracle“ lentelių sąrašą?

Kaip galiu užklausti „Oracle“ duomenų bazę, kad būtų rodomi visų jame esančių lentelių pavadinimai?

862
15 окт. set vitule 15 oct. 2008-10-15 20:54 '08 at 8:54 pm 2008-10-15 20:54
@ 18 atsakymų
 SELECT owner, table_name FROM dba_tables 

Daroma prielaida, kad turite prieigą prie DBA_TABLES duomenų žodyno DBA_TABLES . Jei neturite šių teisių, tačiau jiems jų reikia, galite paprašyti, kad duomenų bazės administratorius aiškiai suteiktų jums teises šioje lentelėje arba kad duomenų bazės administratorius suteiktų jums SELECT ANY DICTIONARY ar SELECT_CATALOG_ROLE teises (bet kuris iš jų leis jums pateikti užklausą duomenų žodynų lentelės). Žinoma, galite išskirti kai kurias schemas, pvz., SYS ir SYSTEM , kuriose yra daug „Oracle“ lentelių, kurios jums nerūpi.

Arba, jei neturite prieigos prie DBA_TABLES , DBA_TABLES galite matyti visas lenteles, į kurias turi prieigą jūsų paskyra:

 SELECT owner, table_name FROM all_tables 

Nors tai gali būti duomenų bazėje esančių lentelių pogrupis ( ALL_TABLES rodo informaciją apie visas jūsų naudotojo pateiktas lenteles).

Jei jus domina tik jūsų USER_TABLES lentelės, o ne tos, kurioms turite prieigą, galite naudoti USER_TABLES :

 SELECT table_name FROM user_tables 

Kadangi USER_TABLES turi tik informaciją apie savo lenteles, ji neturi „ OWNER stulpelio - pagal apibrėžimą esate savininkas.

„Oracle“ taip pat turi keletą pasenusių tipų duomenų žodynų - pavyzdžiui, TAB , DICT , TABS ir CAT - kurie gali būti naudojami. Apskritai nenorėčiau naudoti šių pasenusių vaizdų, jei jums nereikia visiškai naudoti „Oracle 6“ scenarijų. „Oracle“ ilgą laiką nepakeitė šių požiūrių, todėl dažnai kyla problemų dėl naujų tipų objektų. Pavyzdžiui, „ TAB ir „ CAT vaizduose pateikiama informacija apie lenteles, esančias vartotojo krepšelyje, o [DBA|ALL|USER]_TABLES juos filtruoja. CAT taip pat rodo informaciją apie TABLE_TYPE peržiūros žurnalus su TABLE_TYPE lentelėje LENTELĖ, kuri mažai tikėtina, kad tai, ko tikrai norite. DICT sujungia lenteles ir sinonimus ir nesako jums, kam priklauso šis objektas.

1083
15 окт. Atsakymą pateikė Justino urvas spalio 15 d. 2008-10-15 20:56 '08 at 8:56 pm 2008-10-15 20:56

dba_tables ir „ dba_tables neveikia.
Ar tai:

border=0
 select table_name from all_tables 
137
15 окт. atsakymą pateikė vitule Oct 15. 2008-10-15 21:12 '08 9:12 val. 2008-10-15 21:12

Žengiant dar vieną žingsnį, yra dar vienas vaizdas, vadinamas „cols“ („all_tab_columns“), kuriuo galima nustatyti, kurios lentelės turi nurodytą stulpelio pavadinimą.

Pavyzdžiui:

 SELECT table_name, column_name FROM cols WHERE table_name LIKE 'EST%' AND column_name LIKE '%CALLREF%'; 

rasti visas lenteles, kurių pavadinimas prasideda nuo EST, ir stulpelius, kuriuose yra CALLREF, bet kur jų pavadinimuose.

Tai gali padėti kurti stulpelius, kuriuos norite prisijungti, pavyzdžiui, priklausomai nuo lentelės ir stulpelių pavadinimo konvencijų.

54
04 сент. atsakymas pateikiamas stealth_angoid 04 sep . 2009-09-04 10:34 '09 10:34 am. 2009-09-04 10:34

Siekiant geriau matyti sqlplus

Jei naudojate „ sqlplus , pirmiausia galite konfigūruoti kelis parametrus, kad juos būtų lengviau peržiūrėti, jei stulpeliai taps netinkami (šie kintamieji neturėtų būti išsaugoti išeinant iš sqlplus sesijos):

 set colsep '|' set linesize 167 set pagesize 30 set pagesize 1000 

Rodyti visas lenteles

Tada galite naudoti kažką panašaus, kad pamatytumėte visus lentelės pavadinimus:

 SELECT table_name, owner, tablespace_name FROM all_tables; 

Rodyti savo turimas lenteles

Kaip nurodo „@Justin“ urvas, galite naudoti, kad būtų rodomos tik tos lentelės, kurias turite:

 SELECT table_name FROM user_tables; 

Nepamirškite apie vaizdus

Atminkite, kad kai kurios „lentelės“ gali būti „peržiūros“, todėl galite pabandyti paleisti kažką panašaus:

 SELECT view_name FROM all_views; 

Rezultatai

Tai turėtų sukelti kažką, kas atrodo gana priimtina, pavyzdžiui:

2019

32
17 июля '14 в 19:20 2014-07-17 19:20 atsakymas pateikiamas liepos 17 d. 14 val. 19:20 2014-07-17 19:20

Paprasta užklausa parinkti dabartinio naudotojo lenteles:

  SELECT table_name FROM user_tables; 
17
21 дек. Izraelio atsakymas Margulies gruodžio 21 d 2012-12-21 19:32 '12, 07:32 pm 2012-12-21 19:32
  select object_name from user_objects where object_type='TABLE'; 

---------------- ARBA ------------------

  select * from tab; 

---------------- ARBA ------------------

  select table_name from user_tables; 
12
08 окт. Atsakymas suteiktas Harshil 08 okt. 2014-10-08 12:28 '14, 12:28, 2014-10-08 12:28

Pabandykite peržiūrėti toliau pateiktus žodyno duomenis.

 tabs dba_tables all_tables user_tables 
11
25 апр. Mahmoud Ahmed El-Sayed atsakymas, pateiktas balandžio 25 d 2012-04-25 20:30 '12 8:30 val. 2012-04-25 20:30

Pabandykite pasirinkti user_tables , kuriame išvardytos dabartinio naudotojo valdomos lentelės.

6
15 окт. Eddie Awad atsakymas, spalio 15 d 2008-10-15 21:08 '08, 21:08 2008-10-15 21:08

Su bet kuriuo iš jų galite pasirinkti:

 SELECT DISTINCT OWNER, OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME'; SELECT DISTINCT OWNER, OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME'; 
5
07 марта '14 в 21:11 2014-03-07 21:11 atsakymą pateikė Van Gogh kovo 14 d. 14 d. 21:11 2014-03-07 21:11
 select * from dba_tables 

suteikia visiems naudotojams visas lenteles tik tuo atveju, jei vartotojas, su kuriuo esate prisijungę, turi „ sysdba teisių.

4
14 авг. atsakymas pateikiamas praveen2609 14 rug . 2012-08-14 09:28 '12 at 9:28 2012-08-14 09:28

Tam yra 3 elementai.

DBA_TABLES aprašo visas duomenų bazės reliacines lenteles.

 SELECT owner, table_name FROM dba_tables 

Naudotojams prieinamų reliacinių lentelių aprašymas

 SELECT owner, table_name FROM all_tables 

USER_TABLES aprašo dabartinio naudotojo priklausančias reliacines lenteles. „ OWNER“ stulpelis šiame vaizde nerodomas.

 SELECT table_name FROM user_tables 
4
16 февр. atsakymas, kurį pateikė Kamil Ibadov 2017-02-16 10:01 '17, 10:01 2017-02-16 10:01

Neradau atsakymo, rodančio naudojimą

 DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES) 

taip nusprendė pridėti savo versiją. Šis vaizdas iš tikrųjų grąžina daugiau nei DBA_TABLES, nes jis taip pat grąžina objektų lenteles ( http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm ).

2
11 нояб. atsakymą pateikė Rusty 11 lapkričio. 2016-11-11 18:31 '16 at 18:31 pm 2016-11-11 18:31

Oracle Data Dictionary“ galite naudoti informacijos apie „Oracle“ objektus.

Lentelių sąrašą galite gauti įvairiais būdais:

 select * from dba_tables 

arba, pavyzdžiui:

 select * from dba_objects where object_type = 'TABLE' 

Tada lentelės stulpelius galite gauti naudodami lentelės pavadinimą:

 select * from dba_tab_columns 

Tada galite gauti priklausomybių sąrašą (trigerius, rodinius ir tt):

 select * from dba_dependencies where referenced_type='TABLE' and referenced_name=:t_name 

Tada galite gauti šių objektų teksto šaltinį:

 select * from dba_source 

Jei norite, galite naudoti USER arba ALL rodinį, o ne DBA .

2
09 окт. atsakymą pateikė Slava Babin 09 okt. 2016-10-09 19:09 '16 at 19:09 2016-10-09 19:09

Įskaitant vaizdus:

 SELECT owner, table_name as table_view FROM dba_tables UNION ALL SELECT owner, view_name as table_view FROM DBA_VIEWS 
1
25 окт. atsakymas duotas Punnerud spalio 25 d. 2017-10-25 14:44 '17, 14:44 pm 2017-10-25 14:44

„Oracle“ duomenų bazėje pateikiami visi lentelės pavadinimai, naudojant toliau pateiktą užklausą.

 SELECT savininkas, table_name FROM dba_tables; SELECT savininkas, table_name FROM all_tables; SELECT table_name FROM user_tables; 

vist more: http://www.oracleinformation.com/2016/08/get-list-of-all-tables-in-oracle-sql.html

1
17 авг. Atsakymas duotas Brahmareddy K 17 rugpjūčio mėn . 2016-08-17 13:28 '16, 13:28 pm 2016-08-17 13:28

Pasirinkite * iš dba_tables; - būtina pasirinkti katalogo vaidmenį

Pasirinkite * iš user_tables; - pamatyti schemos lenteles

Pasirinkite * iš all_tables; - lentelės, esančios jūsų skustuvų ir stalų lentelėse, kuriose yra skirta specialios dotacijos

1
21 июня '16 в 9:18 2016-06-21 09:18 atsakymą pateikė Prashant Mishra birželio 21 d., 16 val. 9:18 2016-06-21 09:18

Toliau pateikiamame užklausoje pateikiamas tik reikalingų duomenų sąrašas, o kiti atsakymai suteikė man papildomų duomenų, kurie tik mane supainiojo.

 select table_name from user_tables; 
1
09 нояб. Atsakymas pateikiamas Mateen . 2014-11-09 15:36 '14, 15:36 2014-11-09 15:36

Iš toliau pateiktos užklausos galime gauti visas lenteles, įskaitant stulpelių informaciją.

Pasirinkite * iš user_tab_columns;

1
20 нояб. atsakymas duotas tikslui_pasaulis 20 nov. 2017-11-20 18:37 '17 at 18:37 2017-11-20 18:37

Kiti klausimai apie „ žodžius arba Užduoti klausimą