programmera.net -> oracle -> normal     för utskrift      info@programmera.net

ALL_SYNONYMS

1. ALL_SYNONYMS
2. Exempel
3. Exempel med OWNER och TABLE_OWNER

1. ALL_SYNONYMS

I denna tabell visas alla synonymer som användaren kan använda, både publika och privata. ALL_SYNONYMS har samma kolumner som USER_SYNONYMS men med den extra kolumnen OWNER:
SQL> DESC all_synonyms;       
 Namn                                      Null?    Typ
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(30)
 SYNONYM_NAME                              NOT NULL VARCHAR2(30)
 TABLE_OWNER                                        VARCHAR2(30)
 TABLE_NAME                                NOT NULL VARCHAR2(30)
 DB_LINK                                            VARCHAR2(128)
	

2. Exempel

Detta exempel visar några synonymer i databasen (jag har lagt till "WHERE rownum < 10" i SELECT-satsen för att undvika att få för många svar):
SQL> SELECT * FROM ALL_SYNONYMS WHERE rownum < 10;

OWNER      SYNONYM_NAME                   TABLE_OWNE TABLE_NAME                     DB_LINK
---------- ------------------------------ ---------- ------------------------------ ----------
PUBLIC     DUAL                           SYS        DUAL
PUBLIC     SYSTEM_PRIVILEGE_MAP           SYS        SYSTEM_PRIVILEGE_MAP
PUBLIC     TABLE_PRIVILEGE_MAP            SYS        TABLE_PRIVILEGE_MAP
PUBLIC     STMT_AUDIT_OPTION_MAP          SYS        STMT_AUDIT_OPTION_MAP
PUBLIC     V$DLM_MISC                     SYS        V_$DLM_MISC
PUBLIC     V$DLM_LATCH                    SYS        V_$DLM_LATCH
PUBLIC     V$DLM_CONVERT_LOCAL            SYS        V_$DLM_CONVERT_LOCAL
PUBLIC     V$DLM_CONVERT_REMOTE           SYS        V_$DLM_CONVERT_REMOTE
PUBLIC     V$DLM_LOCKS                    SYS        V_$DLM_LOCKS

9 rows selected.
De synonymer som har ägaren (owner) "PUBLIC" är Oracels egna synonymer.

3. Exempel med OWNER och TABLE_OWNER

Kolumen OWNER visar om synonymen är publik eller tillhör någon speciell användare. I satsen nedan frågar vi hur många synonymer som tillhör varje användare:
SQL>  SELECT owner, count(*) FROM ALL_SYNONYMS GROUP BY owner;

OWNER                            COUNT(*)
------------------------------ ----------
DBSNMP                                  4
PUBLIC                               1559
R001                                   37
R002                                   37
SYS                                     6
SYSTEM                                 59

6 rows selected.
      
Vi ser här att det finns 1559 publika synonymer i databasen. Exemplet nedan visar hur man listar bara de publika synonymer som användaren R001 har skapat:
SQL>  SELECT * FROM ALL_SYNONYMS WHERE owner='PUBLIC' and table_owner='R001';
	
OWNER      SYNONYM_NAME                   TABLE_OWNER TABLE_NAME                     DB_LINK
---------- ------------------------------ ----------- ------------------------------ ----------
PUBLIC     DW$TRANSACTION                 R001        DW$TRANSACTION