jueves, 20 de marzo de 2014

DBMS_UTILITY.EXPAND_SQL_TEXT (Característica Nueva en Oracle 12)

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