[20260107]建立完善b5.sql脚本.txt --//以前写的生成执行SQL语句的执行脚本b5.sql,存在1个问题,就是无法抓取timestamp类型,适当修改解决此问题,并做了适当调整。 --//比如改用gv$sqlarea视图并且取一条记录,当然缺点就是如果不在共享池,无法抓取sql语句。 --//不过该脚本我个人很少使用,当然还是存在许多问题,to_char(sql_fulltext)超过4000个字符报错. $ cat b5.sql /* Formatted on 2026-01-08 17:03:13 (QP5 v5.277) */ SET FEEDBACK OFF SET HEAD OFF SET VERIFY OFF DEFINE sql_id=&1 -- --Ascertain child_no , inst_id -- COL CHILD_NUMBER NEW_VALUE CHILD_NO COL INST_ID NEW_VALUE INST_ID OLD_VALUE INST_ID SET TERMOUT OFF SELECT child_number, inst_id FROM GV$SQL WHERE sql_id = '&&sql_id' AND ROWNUM = 1; SELECT child_number, inst_id FROM GV$SQL_BIND_CAPTURE WHERE sql_id = '&&sql_id' AND ROWNUM = 1; SET TERMOUT ON SPOOL &&1..sql5 SELECT 'set sqlblanklines on' txt FROM DUAL UNION ALL SELECT 'alter session set current_schema=' || PARSING_SCHEMA_NAME || ';' txt FROM gv$sqlarea WHERE sql_id = '&&sql_id' AND ROWNUM = 1 UNION ALL SELECT 'alter session set statistics_level=all;' txt FROM DUAL; SELECT '--@10046on 12' txt FROM DUAL; SELECT 'begin' txt FROM DUAL UNION ALL SELECT 'execute immediate q''' || CHR (7) || (SELECT TO_CHAR (sql_fulltext) txt FROM gv$sqlarea WHERE sql_id = '&&1' AND ROWNUM = 1) || CHR (7) || ''' using' txt FROM DUAL UNION ALL --SELECT LISTAGG ( DECODE ( DATATYPE_STRING ,'NUMBER', value_string -- ,'DATE', '''' || TO_CHAR ( TO_DATE (value_string, 'mm/dd/yy hh24:mi:ss') ,'yyyy/mm/dd hh24:mi:ss') || '''' -- ,'TIMESTAMP', '''' ||TO_CHAR ( ANYDATA.accesstimestamp (value_anydata) ,'yyyy/mm/dd hh24:mi:ss.ff9')|| '''' -- ,'''' || value_string || '''') ,CHR (10) || ',') WITHIN GROUP (ORDER BY POSITION) -- txt -- FROM gv$sql_bind_capture -- WHERE sql_id = '&&sql_id' -- AND child_number = &&child_no -- AND inst_id = &&inst_id -- AND was_captured = 'YES' -- AND DUP_POSITION IS NULL SELECT LISTAGG ( --CASE WHEN (datatype_string='NUMBER' or value_string='NULL') THEN NULL ELSE '' END || CASE datatype_string WHEN 'NUMBER' THEN DECODE (value_string, 'NULL', NULL, NVL (value_string, '00')) WHEN 'DATE' THEN 'TO_DATE(''' || TO_CHAR (TO_DATE (value_string, 'mm/dd/yy hh24:mi:ss'), 'yyyy/mm/dd hh24:mi:ss') || ''',''yyyy/mm/dd hh24:mi:ss'')' WHEN 'TIMESTAMP' THEN 'TO_TIMESTAMP(''' || TO_CHAR (ANYDATA.accesstimestamp (value_anydata), 'yyyy/mm/dd hh24:mi:ss.ff9') || ''',''yyyy/mm/dd hh24:mi:ss.ff9'')' ELSE '''' || DECODE (value_string, 'NULL', NULL, NVL (value_string, '00')) || '''' END || ' -- ' || name --|| CASE WHEN (datatype_string='NUMBER' or value_string='NULL') THEN NULL ELSE '' END ,CHR (10) || ',') WITHIN GROUP (ORDER BY POSITION) txt FROM v$sql_bind_capture WHERE sql_id = '&&1' AND child_number = &&child_no AND was_captured = 'YES' AND DUP_POSITION IS NULL UNION ALL SELECT ';' txt FROM DUAL UNION ALL SELECT 'end;' txt FROM DUAL UNION ALL SELECT '/' txt FROM DUAL; SELECT '@dpc &sql_id outline ''''' txt FROM DUAL; SELECT 'set sqlblanklines off' txt FROM DUAL UNION ALL SELECT 'rollback;' txt FROM DUAL UNION ALL SELECT '--@10046off' txt FROM DUAL UNION ALL SELECT 'alter session set current_schema=' || USER || ' ;' txt FROM DUAL; PROMPT SPOOL OFF UNDEF sql_id UNDEF child_no UNDEF inst_id SET FEEDBACK 6; SET HEAD ON SET LINESIZE 277
[20260107]建立完善b5.sql脚本.txt
来源:这里教程网
时间:2026-03-03 23:05:21
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 国内AI基础设施厂商对比分析
国内AI基础设施厂商对比分析
26-03-03 - 智能座舱新战事:大模型不是答案,只是起点
智能座舱新战事:大模型不是答案,只是起点
26-03-03 - Oracle PDB拔插到另一个CDB
Oracle PDB拔插到另一个CDB
26-03-03 - 千问APP与通义系列大模型,才是智能汽车的“黄金组合”
千问APP与通义系列大模型,才是智能汽车的“黄金组合”
26-03-03 - 数据库管理-第399期 Oracle 19c搭建DG Far Sync日志备库(20260107)
- 2026 年,智能汽车正式进入“端云协同”的分水岭
2026 年,智能汽车正式进入“端云协同”的分水岭
26-03-03 - 律威盾:“财务 + 收支”特色服务,铸就生活安稳之盾
律威盾:“财务 + 收支”特色服务,铸就生活安稳之盾
26-03-03 - 协同共赢 数智冷链如何构建餐饮连锁高质量发展新生态
协同共赢 数智冷链如何构建餐饮连锁高质量发展新生态
26-03-03 - 高端消费科技品牌 xTool 递表港交所:个人创意工具全球龙头
高端消费科技品牌 xTool 递表港交所:个人创意工具全球龙头
26-03-03 - 律威盾:特色一体化服务,开启个人家庭财务健康与诚信双赢新篇
律威盾:特色一体化服务,开启个人家庭财务健康与诚信双赢新篇
26-03-03
