sql >> Databasteknik >  >> RDS >> Oracle

Hur listar jag alla tabeller i ett schema i Oracle SQL?

För att se alla tabeller i ett annat schema måste du ha en eller flera av följande systembehörigheter:

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

eller den stora hammaren, DBA-rollen.

Med någon av dessa kan du välja:

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

Utan dessa systembehörigheter kan du bara se tabeller som du har beviljats ​​en viss nivå av åtkomst till, antingen direkt eller genom en roll.

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

Slutligen kan du alltid fråga datalexikonet för dina egna tabeller, eftersom dina rättigheter till dina tabeller inte kan återkallas (från och med 10g):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'


  1. Introduktion till Storage Spaces Direct för SQL Server

  2. Parameter Sniffing, Inbäddning och ÅTERKOMPILERING

  3. Vad gör ::i PostgreSQL?

  4. Kan inte använda UPDATE med OUTPUT-satsen när en trigger finns på bordet