[20240326]建立完善expand_sql_text.sql脚本.txt --//我写的脚本在19c上报错,检查发现一个小错误. --//原始脚本如下: $ cat expand_sql_text.sql set long 20000 set serveroutput on declare L_sqltext clob := null; l_version varchar2(3) := null; l_sql clob := null; l_result clob := null; begin select regexp_replace(version,'\..*') into l_version from v$instance; select sql_fulltext into l_sqltext from v$sqlarea where sql_id='&&1'; if l_version = '11' then l_sql := 'begin dbms_sql2.expand_sql_text( :a,:b ); end;'; elsif l_version = '12' then l_sql := 'begin dbms_utility.expand_sql_text(:a,:b); end;'; end if; execute immediate l_sql using in l_sqltext,out l_result; dbms_output.put_line(l_result); end; / set serveroutput off --//我写的版本仅仅在11g ,12c下使用.我写死版本号. SYS@192.168.100.235:1521/orcl> SELECT stat_name,value FROM dba_hist_sysstat WHERE snap_id = 29153 AND instance_number = 1 AND dbid = 1585360079 AND stat_name in ('sorts (rows)'); STAT_NAME VALUE ---------------------------------------------------------------- ------------ sorts (rows) 203277136577 SYS@192.168.100.235:1521/orcl> @ hash HASH_VALUE SQL_ID CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE HASH_HEX SQL_EXEC_START SQL_EXEC_ID ------------ ------------- ------------ ------------ --------------- ---------- ------------------- ------------ 2001683481 07pg2ntvnyj0t 3 82969 2415011809 774f4419 2024-03-26 09:21:48 16777225 SYS@192.168.100.235:1521/orcl> @ expand_sql_text 07pg2ntvnyj0t declare * ERROR at line 1: ORA-06535: statement string in EXECUTE IMMEDIATE is NULL or 0 length ORA-06512: at line 21 --//修改expand_sql_text.sql: elsif l_version = '12' then --//为 elsif l_version >= '12' then SYS@192.168.100.235:1521/orcl> @ expand_sql_text 07pg2ntvnyj0t SELECT "A1"."STAT_NAME" "STAT_NAME" , "A1"."VALUE" "VALUE" FROM ( SELECT "A2"."SNAP_ID" "SNAP_ID" , "A2"."DBID" "DBID" , "A2"."INSTANCE_NUMBER" "INSTANCE_NUMBER" , "A2"."STAT_NAME" "STAT_NAME" , "A2"."VALUE" "VALUE" FROM ( SELECT /*+ LEADING ("A5" "A4" "A3") USE_HASH ("A4") USE_HASH ("A5") */ "A4"."SNAP_ID" "SNAP_ID","A4"."DBID" "DBID","A4"."INSTANCE_NUMBER" "INSTANCE_NUMBER","A3"."STAT_NAME" "STAT_NAME","A4"."VALUE" "VALUE" FROM "SYS"."WRM$_SNAPSHOT" "A5" , "SYS"."WRH$_SYSSTAT" "A4" , "SYS"."WRH$_STAT_NAME" "A3" WHERE "A4"."STAT_ID" = "A3"."STAT_ID" AND "A4"."DBID" = "A3"."DBID" AND "A4"."SNAP_ID" = "A5"."SNAP_ID" AND "A4"."DBID" = "A5"."DBID" AND "A4"."INSTANCE_NUMBER" = "A5"."INSTANCE_NUMBER" AND "A5"."STATUS" = 0) "A2") "A1" WHERE "A1"."SNAP_ID" = 29153 AND "A1"."INSTANCE_NUMBER" = 1 AND "A1"."DBID" = 1585360079 AND "A1"."STAT_NAME" = 'sorts (rows)' PL/SQL procedure successfully completed. --//做了格式化处理. --//更新脚本如下: $ cat expand_sql_text.sql -- Copyright 2023 lfree. All rights reserved. -- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms and conditions. -------------------------------------------------------------------------------- -- -- File name: expand_sql_text.sql -- Purpose: Display expand of sql fulltext -- -- Author: lfree -- -- Usage: -- @ expand_sql_text <sql_id> -- -------------------------------------------------------------------------------- set long 20000 set serveroutput on declare L_sqltext clob := null; l_version varchar2(3) := null; l_sql clob := null; l_result clob := null; begin select regexp_replace(version,'\..*') into l_version from v$instance; select sql_fulltext into l_sqltext from gv$sqlarea where sql_id='&&1' and rownum=1; if l_version = '11' then l_sql := 'begin dbms_sql2.expand_sql_text( :a,:b ); end;'; elsif l_version >= '12' then l_sql := 'begin dbms_utility.expand_sql_text(:a,:b); end;'; end if; execute immediate l_sql using in l_sqltext,out l_result; dbms_output.put_line(l_result); end; / set serveroutput off
[20240326]建立完善expand_sql_text.sql脚本.txt
来源:这里教程网
时间:2026-03-03 19:46:32
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库管理-第166期 来自于全球最强数据库性能优化团队的四大处方(20240329)
- library cache lock模拟和处理
library cache lock模拟和处理
26-03-03 - 突发,亲历数据仓库ORA-01578:ORACLE data block corrupted
- 分页语句该怎么写?
分页语句该怎么写?
26-03-03 - 糟糕,归档满RMAN进不去,CPU98%了!
糟糕,归档满RMAN进不去,CPU98%了!
26-03-03 - row_number 函数和关联更新
row_number 函数和关联更新
26-03-03 - Temu,藏在拼多多财报里的中国制造红利
Temu,藏在拼多多财报里的中国制造红利
26-03-03 - 同城即配年度观察:顺丰同城率先全年盈利,行业破局迎参考
同城即配年度观察:顺丰同城率先全年盈利,行业破局迎参考
26-03-03 - 数据库管理-第160期 Oracle Vector DB & AI-11(20240312)
- ARCH进程和LGWR进程
ARCH进程和LGWR进程
26-03-03
