SELECT owner, table_name
FROM dba_tables
Ini dengan asumsi bahwa Anda memiliki akses ke DBA_TABLES
tampilan kamus data. Jika Anda tidak memiliki hak istimewa itu tetapi membutuhkannya, Anda dapat meminta agar DBA secara eksplisit memberi Anda hak istimewa di tabel itu, atau, DBA memberi Anda SELECT ANY DICTIONARY
hak istimewa atau SELECT_CATALOG_ROLE
role (salah satunya akan memungkinkan Anda untuk menanyakan tabel kamus data apa pun). Tentu saja, Anda mungkin ingin mengecualikan skema tertentu seperti SYS
dan SYSTEM
yang memiliki banyak tabel Oracle yang mungkin tidak Anda pedulikan.
Atau, jika Anda tidak memiliki akses ke DBA_TABLES
, Anda dapat melihat semua tabel yang dapat diakses akun Anda melalui ALL_TABLES
lihat:
SELECT owner, table_name
FROM all_tables
Meskipun, itu mungkin bagian dari tabel yang tersedia di database (ALL_TABLES
menunjukkan kepada Anda informasi untuk semua tabel yang telah diberikan akses kepada pengguna Anda).
Jika Anda hanya peduli dengan tabel yang Anda miliki, bukan tabel yang dapat Anda akses, Anda dapat menggunakan USER_TABLES
:
SELECT table_name
FROM user_tables
Sejak USER_TABLES
hanya memiliki informasi tentang tabel yang Anda miliki, tidak memiliki OWNER
kolom – pemiliknya, menurut definisi, adalah Anda.
Oracle juga memiliki sejumlah tampilan kamus data lawas-- TAB
, DICT
, TABS
, dan CAT
misalnya-- yang bisa digunakan. Secara umum, saya tidak akan menyarankan menggunakan tampilan warisan ini kecuali Anda benar-benar perlu mem-backport skrip Anda ke Oracle 6. Oracle tidak mengubah tampilan ini dalam waktu yang lama sehingga mereka sering mengalami masalah dengan jenis objek yang lebih baru. Misalnya, TAB
dan CAT
tampilan keduanya menampilkan informasi tentang tabel yang ada di recycle bin pengguna sedangkan [DBA|ALL|USER]_TABLES
melihat semua menyaringnya. CAT
juga menampilkan informasi tentang log tampilan yang terwujud dengan TABLE_TYPE
dari "TABLE" yang sepertinya bukan yang Anda inginkan. DICT
menggabungkan tabel dan sinonim dan tidak memberi tahu Anda siapa pemilik objek.