我为了在v$sql中,找到我执行的sql语句,在sql语句中加了个注释。
奇怪的是:为什么在procedure中的sql(即mytag02的sql)没有在v$sql中出现?
SQL> select /* mytag01 */ dummy from dual;
DU
--
X
已用时间: 00: 00: 00.10
SQL>
SQL> create or replace procedure test_p is
2 v_val varchar2(1);
3 begin
4 select /* mytag02 */ dummy into v_val from dual;
5 execute immediate 'select /* mytag03 */ dummy from dual' into v_val;
6 end;
7 /
过程已创建。
已用时间: 00: 00: 00.37
SQL> exec test_p;
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.07
SQL> select sql_text,parse_calls,executions from v$sql where sql_text like '%mytag0%';
SQL_TEXT PARSE_CALLS EXECUTIONS
------------------------------------------------------------------------------------------ ----------- ----------
select /* mytag01 */ dummy from dual 1 1
select /* mytag03 */ dummy from dual 1 1
select sql_text,parse_calls,executions from v$sql where sql_text like '%mytag0%' 1 1
已用时间: 00: 00: 00.24
SQL> select * from v$version;
BANNER
----------------------------------------------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for HPUX: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
已用时间: 00: 00: 00.12
SQL>
博客探讨了在 Oracle 数据库中使用 SQL 注释,并在 V$SQL 视图中查找执行的 SQL 语句的问题。作者创建了一个存储过程,其中包含带有特定标签的 SQL 语句,但发现这些语句并未如预期地出现在 V$SQL 视图中。内容涉及到 SQL 查询、存储过程、V$SQL 视图的使用以及数据库查询监控。
1004

被折叠的 条评论
为什么被折叠?



