Hallé esto en el blog de Tom Kyte y lo probé en Oracle 12.1. De vez en cuando, tienes una vista complicada que está formada de vistas sobre vistas etc. Si quieres ver las tablas y columnas que mira, se puede hacerlo con esta función. Aquí está un ejemplo:
SQL> set serveroutput on format word_wrapped
SQL> declare
2 original_sql clob := 'select * from all_users';
3 expanded_sql clob := empty_clob();
4 begin
5 dbms_utility.expand_sql_text(original_sql,expanded_sql);
6 dbms_output.put_line(expanded_sql);
7 end;
8 /
SELECT "A1"."USERNAME" "USERNAME","A1"."USER_ID"
"USER_ID","A1"."CREATED" "CREATED","A1"."COMMON"
"COMMON","A1"."ORACLE_MAINTAINED" "ORACLE_MAINTAINED" FROM
(SELECT "A4"."NAME" "USERNAME","A4"."USER#"
"USER_ID","A4"."CTIME"
"CREATED",DECODE(BITAND("A4"."SPARE1",128),128,'YES','NO')
"COMMON",DECODE(BITAND("A4"."SPARE1",256),256,'Y','N')
"ORACLE_MAINTAINED" FROM "SYS"."USER$" "A4","SYS"."TS$"
"A3","SYS"."TS$" "A2" WHERE "A4"."DATATS#"="A3"."TS#" AND
"A4"."TEMPTS#"="A2"."TS#" AND "A4"."TYPE#"=1) "A1"
Procedimiento PL/SQL terminado correctamente.
SQL>
No hay comentarios:
Publicar un comentario