如何查看存储过程中动态生成的sql
来源:互联网 发布:js获取时间控件的值 编辑:程序博客网 时间:2024/05/22 08:18
今天在工作中遇到那么一个需求,要查看存储过程中生成的sql,以便和实际的业务需求核对。
经过多方查询,想到如下办法:
1、在存储过程中凡是涉及到execute immediate mysql的地方,加上DBMS_OUTPUT.PUT_LINE(mysql);同时为了减少运行时间将execute immediate mysql注释。
2、如果因为mysql字符过长,报string buffer is too small,那么采用另外一种方式,事先定义v_pos Number := 1;然后通过以下语句输出:
WHILE v_pos<= LENGTH(mysql) LOOP DBMS_OUTPUT.PUT_LINE(SUBSTR(mysql, v_pos, 200)); v_pos:=v_pos+200;END LOOP;
3、然后编译完上面的存储过程后,在command window下执行如下语句:
set serveroutput on;declarebegindbms_output.enable(200000);proc_one_to_many_source_erp_jc('QKJTJ_BAS_ITEMINFO_DWJJ','004002');--存储过程名称自行调整,参数自行在填充end;
4、这样输出的sql后面是不带;号的,请自行在每条sql后加上;号。
另外通过第二种方式输出的sql,会强制带有空格,请自行去掉空格,方式有很多,我是在word中通过将^p替换成 的方式去的。
5、最后的将sql拷贝到工具中格式化一下就可以看懂了。
6、暂时只想到这么个办法,有其他办法再进行优化。
0 0
- 如何查看存储过程中动态生成的sql
- Oracle中存储过程执行大的Sql语句时如何查看sql是否正确
- mssql 存储过程学习中 [3] 动态生成SQL
- 动态生成SQL的存储过程,以及调用方法
- oracle存储过程中如何执行动态SQL语句
- oracle存储过程中如何执行动态SQL语句
- SQL Server:如何查看某个存储过程的执行历史
- 如何查看存储过程的定义 (SQL Server Management Studio)
- 动态生成的存储过程
- SQL 存储过程动态生成列
- oracle动态sql:存储过程中动态调用存储过程,并且动态调用的存储过程出参数游标
- SqlPlus 中,如何查看某存储过程的内容?
- 生成表中数据的sql语法的存储过程
- SQLSERVER 存储过程中动态SQL的使用
- 存储过程中动态执行Oracle的Sql
- 在存储过程中使用动态sql
- oracle存储过程中应用动态sql
- 存储过程中执行动态Sql语句
- git使用总结
- c#基础之数组
- Linux按时间排序文件
- Leetcode#67||Add Binary
- 机房收费系统之组合查询
- 如何查看存储过程中动态生成的sql
- Jmeter 在 linux 命令行下报“获取连接时间过长”的异常
- Android更改 PreferenceFragment 的背景颜色
- 一个硬件端没有做好,只做好了手机端的安卓蓝牙设备
- 浅谈Java代理模式
- 安卓Eclipse开发者的福音
- 【Mockplus教程】为什么 Windows XP 无法安装?
- UVa-156 Ananagrams
- 手机浏览器错误提示