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.