49 lines
1.6 KiB
SQL
49 lines
1.6 KiB
SQL
CREATE OR REPLACE FORCE VIEW obj_indexes AS
|
|
WITH x AS (
|
|
SELECT /*+ MATERIALIZE */
|
|
app.get_owner() AS owner,
|
|
app.get_item('$TABLE_NAME') AS table_name
|
|
FROM DUAL
|
|
),
|
|
c AS (
|
|
SELECT /*+ MATERIALIZE */
|
|
c.table_owner,
|
|
c.table_name,
|
|
c.index_name,
|
|
LISTAGG(c.column_name, ', ') WITHIN GROUP (ORDER BY c.column_position) AS list_columns
|
|
FROM all_ind_columns c
|
|
JOIN x
|
|
ON x.owner = c.table_owner
|
|
AND c.table_name = NVL(x.table_name, c.table_name)
|
|
WHERE c.table_name NOT IN (SELECT object_name FROM RECYCLEBIN)
|
|
GROUP BY c.table_owner, c.table_name, c.index_name
|
|
)
|
|
SELECT
|
|
i.table_name,
|
|
i.index_name,
|
|
i.index_type,
|
|
--
|
|
CASE WHEN i.uniqueness = 'UNIQUE' THEN 'Y' END AS is_unique,
|
|
CASE WHEN i.constraint_index = 'YES' THEN 'Y' END AS is_constraint,
|
|
CASE WHEN NVL(i.funcidx_status, i.status) = 'VALID' THEN 'Y' END AS is_valid,
|
|
CASE WHEN i.compression = 'ENABLED' THEN 'Y' END AS is_compressed,
|
|
CASE WHEN i.partitioned = 'YES' THEN 'Y' END AS is_partitioned,
|
|
CASE WHEN i.visibility = 'VISIBLE' THEN 'Y' END AS is_visible,
|
|
--
|
|
c.list_columns,
|
|
--
|
|
i.num_rows,
|
|
i.distinct_keys,
|
|
i.leaf_blocks,
|
|
i.tablespace_name,
|
|
i.last_analyzed
|
|
FROM all_indexes i
|
|
JOIN c
|
|
ON c.table_owner = i.table_owner
|
|
AND c.table_name = i.table_name
|
|
AND c.index_name = i.index_name
|
|
WHERE i.generated = 'N';
|
|
--
|
|
COMMENT ON TABLE obj_indexes IS '';
|
|
|