Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie liste ich alle Tabellen in einem Schema in Oracle SQL auf?

Um alle Tabellen in einem anderen Schema anzuzeigen, müssen Sie über eine oder mehrere der folgenden Systemberechtigungen verfügen:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

oder der große Hammer, die DBA-Rolle.

Bei diesen können Sie Folgendes auswählen:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Ohne diese Systemberechtigungen können Sie nur Tabellen sehen, auf die Sie Zugriff haben, entweder direkt oder über eine Rolle.

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Schließlich können Sie jederzeit das Data Dictionary für Ihre eigenen Tabellen abfragen, da Ihre Rechte an Ihren Tabellen nicht entzogen werden können (ab 10g):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'