暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle gv $ SQL中的精确sql文本匹配

ASKTOM 2021-01-07
982

问题描述

嗨,克里斯,康纳,

我有一个以下格式编写的应用程序SQL

select  /* Q_ORDERS_001 */ order_id from orders;
复制


但是,当我查询gv $ sql以查看sql信息时,找不到sql的excat匹配。
在gv $ sql中,我得到了一个带有字符串的条目,从订单中选择order_id;

您能否帮助理解为什么/* Q_ORDERS_001 */被省略的原因。

专家解答

您是否有机会在PL/SQL中运行此语句?

这对SQL进行了规范化,它删除了不必要的空格,标准化了大小写,并删除了注释:

create table t (
  c1 int
);

begin
  for rws in (
    select /* plsql */* from t plsql
  ) loop
    null;
  end loop;
end;
/

select sql_text from v$sql
where  lower ( sql_text ) like 'select%'
and    lower ( sql_text ) like '%t plsql%'
and    sql_text not like '%v$sql%';

SQL_TEXT                 
SELECT * FROM T PLSQL 
复制


还是有可能的注释版本 “一段时间” 没有运行,因此不再缓存,但是最近运行了未注释的版本?
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论