Oracle dblink不知源的SQL

遇到一个奇葩的问题,A通过DBLINK操作B数据库,但一直找不到是哪里执行的。

DELETE FROM "GG_PLAN_PROJECT" "A1"
 WHERE "A1"."PLAN_PROJECT_ID" = ANY
 (SELECT "A2"."PLAN_PROJECT_ID"
          FROM "GG_PLAN_PROJECT"@ ! "A2"
         WHERE EXISTS
         (SELECT 1
                  FROM "GG_PUB_CS"."TOP_USER"@ ! "A3"
                 WHERE "A3"."USER_ID" = "A2"."CREATOR_ID"
                    OR "A3"."USER_ID" = "A2"."MODIFIER_ID")
           AND ("A2"."MODIFY_TIME" >
               TO_DATE('2016-08-30 16:21:26', 'yyyy-mm-dd hh24:mi:ss') OR
               "A2"."CREATE_TIME" >
               TO_DATE('2016-08-30 16:21:26', 'yyyy-mm-dd hh24:mi:ss'))
           AND "A2"."DATA_OWN_AREA" LIKE '03%')

找到是哪个用户执行的。
select * from dba_hist_active_sess_history s where s.sql_id='fr0uk254r4z8b'; 
select * from v$sql s where s.sql_id='fr0uk254r4z8b';
然后找到定义,下面的SQL找不到
select * from user_source s where s.text like '%ANY%';
select * from user_source s where s.text like '%CREATE_TIME%';
找到一个存储过程,但有点不像:
execute immediate 'DELETE FROM ' ||
                  syn_targer.target_synonym_name || '' ||
                  NVL(syn_object.another_name,
                      syn_object.object_name) || '
  WHERE ' || syn_object_pk || ' IN
        (SELECT ' || syn_object_pk || '
          FROM ' ||
                  syn_object.object_name || '
          WHERE ' || syn_object_rule ||
           SYN_PUB_USER_CONDITION ||'
          AND (MODIFY_TIME > TO_DATE(''' ||
                  syn_last_time ||
                  ''',''yyyy-mm-dd hh24:mi:ss'')
            OR CREATE_TIME > TO_DATE(''' ||
                  syn_last_time || ''',''yyyy-mm-dd hh24:mi:ss''))
          AND ' ||syn_object.object_name || '.DATA_OWN_AREA LIKE ''' ||
                  SYN_DATA_OWN_AREA || '%'' )';
想了一下,A通过DBLINK访问B,此时SQL其实发生了转换,其实就是这个存储过程执行的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值