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

USER_IND_COLUMNS

1. USER_IND_COLUMNS
2. Ett exempel
3. Ett bättre exempel

1. USER_IND_COLUMNS

I tabellen USER_IND_COLUMNS kan man se vilka kolumner som indexeras av index. Följande kolumner finns i tabellen USER_IND_COLUMNS:
SQL> DESC user_ind_columns;
 Namn                                      Null?    Typ
 ----------------------------------------- -------- ----------------------------
 INDEX_NAME                                         VARCHAR2(30)
 TABLE_NAME                                         VARCHAR2(30)
 COLUMN_NAME                                        VARCHAR2(4000)
 COLUMN_POSITION                                    NUMBER
 COLUMN_LENGTH                                      NUMBER
 CHAR_LENGTH                                        NUMBER
 DESCEND                                            VARCHAR2(4)

2. Ett exempel

Det vanligaste användningen av USER_IND_COLUMNS är kanske när du vill veta om en viss kolumn i en tabell är indexerad eller inte. Du kan se alla indexerade kolumner i ditt schema med följande sats:
SQL> SELECT table_name, index_name, column_name FROM user_ind_columns;
TABLE_NAME      INDEX_NAME                COLUMN_NAME
--------------- ------------------------- --------------------
ADDRESSES       SYS_C003030               SYS_NC_OID$
DEP             PK_DEP                    DEP_PK
EMP             IDX_EMP_ID_NR             ID_NR
EMP             IDX_BMP_EMP_DEP_PK        DEP_PK
EMP             IDX_EMP_FIRST_LAST_NAME   LAST_NAME
EMP             IDX_EMP_FIRST_LAST_NAME   FIRST_NAME
EMP1            SYS_C003028               EMP_ID

7 rader.

3. Ett bättre exempel

Om du har många tabeller i ditt schema blir exemplet ovan oöverskådligt. Då är det bättre att titta på alla indexerade kolumner för en enskild tabell. Om du t.ex. vill se vilka kolumner som är indexerade i tabellen CS_INCIDENTS_ALL_B så kan du skriva följande:
SQL> COL column_name FORMAT a30
SQL> SELECT table_name, column_name
  2  FROM user_ind_columns
  3  WHERE table_name = 'CS_INCIDENTS_ALL_B'
  4  ORDER BY column_name;

TABLE_NAME                     COLUMN_NAME
------------------------------ ------------------------------
CS_INCIDENTS_ALL_B             CLOSE_DATE
CS_INCIDENTS_ALL_B             CLOSE_DATE
CS_INCIDENTS_ALL_B             CREATION_DATE
CS_INCIDENTS_ALL_B             CURRENT_SERIAL_NUMBER
CS_INCIDENTS_ALL_B             CUSTOMER_ID
CS_INCIDENTS_ALL_B             CUSTOMER_PRODUCT_ID
CS_INCIDENTS_ALL_B             CUSTOMER_TICKET_NUMBER
CS_INCIDENTS_ALL_B             EXPECTED_RESOLUTION_DATE
CS_INCIDENTS_ALL_B             EXPECTED_RESOLUTION_DATE
CS_INCIDENTS_ALL_B             INCIDENT_DATE
CS_INCIDENTS_ALL_B             INCIDENT_ID

TABLE_NAME                     COLUMN_NAME
------------------------------ ------------------------------
CS_INCIDENTS_ALL_B             INCIDENT_NUMBER
CS_INCIDENTS_ALL_B             INCIDENT_OWNER_ID
CS_INCIDENTS_ALL_B             INCIDENT_OWNER_ID
CS_INCIDENTS_ALL_B             INCIDENT_OWNER_ID
CS_INCIDENTS_ALL_B             INCIDENT_SEVERITY_ID
CS_INCIDENTS_ALL_B             INCIDENT_STATUS_ID
CS_INCIDENTS_ALL_B             INCIDENT_STATUS_ID
CS_INCIDENTS_ALL_B             INCIDENT_TYPE_ID
CS_INCIDENTS_ALL_B             INCIDENT_URGENCY_ID
CS_INCIDENTS_ALL_B             INVENTORY_ITEM_ID
CS_INCIDENTS_ALL_B             OWNER_GROUP_ID

20 rader.