usuario sobre sintaxis sentencias seleccionar rol registros privilegios primeros permisos los listar grants esquema developer dar crear consultar asignar sql oracle

sql - sintaxis - ¿Cómo obtengo información sobre el propietario de un índice y una tabla en Oracle?



sentencias sql server (3)

Quiero escribir una declaración de selección para mostrar el nombre de índice, el nombre de tabla, el propietario de tabla y la singularidad que existen en el diccionario de datos para los índices de usuario de la tabla. Cualquier ayuda sería genial. Mi problema es que no he podido encontrar la forma de mostrar un nombre de índice y el propietario de la tabla.

SELECT owner, table_name FROM dba_tables;

Esto da la mayor parte de ello.


De acuerdo con los docs , puedes hacer:

select INDEX_NAME, TABLE_OWNER, TABLE_NAME, UNIQUENESS from USER_INDEXES

o

select INDEX_NAME, TABLE_OWNER, TABLE_NAME, UNIQUENESS from ALL_INDEXES

Si quieres todos los índices ...


Lo siguiente puede ayudar a darle la necesidad que necesita:

SELECT index_owner, index_name, table_name, column_name, column_position FROM DBA_IND_COLUMNS ORDER BY index_owner, table_name, index_name, column_position ;

Para mi caso de uso, quería los nombres y el orden de las columnas que están en los índices (para poder recrearlos en un motor de base de datos diferente después de migrar a AWS). Lo siguiente fue lo que usé, en caso de que sea de utilidad para alguien más:

SELECT index_name, table_name, column_name, column_position FROM DBA_IND_COLUMNS WHERE INDEX_OWNER = ''FOO'' AND TABLE_NAME NOT LIKE ''%$%'' ORDER BY table_name, index_name, column_position ;


select index_name, column_name from user_ind_columns where table_name = ''NAME'';

O usa esto:

select TABLE_NAME, OWNER from SYS.ALL_TABLES order by OWNER, TABLE_NAME

Y para los índices:

select INDEX_NAME, TABLE_NAME, TABLE_OWNER from SYS.ALL_INDEXES order by TABLE_OWNER, TABLE_NAME, INDEX_NAME