Bir Oracle veritabanını, içindeki tüm tabloların adlarını görüntülemek için nasıl sorgulayabilirim?
SELECT owner, table_name
FROM dba_tables
Bu, DBA_TABLES
veri sözlüğü görünümüne erişiminiz olduğunu varsaymaktadır. Bu ayrıcalıklara sahip değilseniz ancak bunlara ihtiyacınız varsa, DBA'nın size bu tabloda açıkça ayrıcalıklar vermesini veya DBA'nın size SELECT ANY DICTIONARY
ayrıcalığını veya SELECT_CATALOG_ROLE
rolünü vermesini isteyebilirsiniz (her ikisi de herhangi bir veri sözlüğü tablosunu sorgulamanıza izin verir). Elbette, muhtemelen önemsemediğiniz çok sayıda Oracle tablosuna sahip olan SYS
ve SYSTEM
gibi belirli şemaları hariç tutmak isteyebilirsiniz.
Alternatif olarak, DBA_TABLES
erişiminiz yoksa, ALL_TABLES
görünümü aracılığıyla hesabınızın erişebildiği tüm tabloları görebilirsiniz:
SELECT owner, table_name
FROM all_tables
Ancak, bu veritabanında bulunan tabloların bir alt kümesi olabilir (ALL_TABLES
size kullanıcınızın erişim izni olan tüm tabloların bilgilerini gösterir).
Eğer erişiminiz olan tablolarla değil de sadece sahip olduğunuz tablolarla ilgileniyorsanız, USER_TABLES
kullanabilirsiniz:
SELECT table_name
FROM user_tables
USER_TABLESyalnızca sahip olduğunuz tablolar hakkında bilgi içerdiğinden, bir
OWNER` sütununa sahip değildir - tanım gereği sahip sizsiniz.
Oracle ayrıca kullanılabilecek bir dizi eski veri sözlüğü görünümüne de sahiptir - örneğin TAB
, DICT
, TABS
ve CAT
. Genel olarak, komut dosyalarınızı Oracle 6'ya geri aktarmanız kesinlikle gerekmedikçe bu eski görünümleri kullanmanızı önermem. Oracle bu görünümleri uzun süredir değiştirmediğinden, genellikle yeni nesne türleriyle ilgili sorunlar yaşarlar. Örneğin, TAB
ve CAT
görünümlerinin her ikisi de kullanıcının geri dönüşüm kutusundaki tablolar hakkında bilgi gösterirken, [DBA|ALL|USER]_TABLES
görünümlerinin tümü bunları filtreler. CATayrıca
TABLE_TYPEdeğeri "TABLE" olan materyalleştirilmiş görünüm günlükleri hakkındaki bilgileri de gösterir ki bu gerçekten istediğiniz şey olmayabilir. DICT
tabloları ve eş anlamlıları birleştirir ve size nesnenin sahibinin kim olduğunu söylemez.
Geçerli kullanıcının sahip olduğu tabloları listeleyen user_tables adresinden seçim yapmayı deneyin.