Oracle dblink不知源的SQL

原创 2016年08月30日 18:47:36
遇到一个奇葩的问题,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其实发生了转换,其实就是这个存储过程执行的。

相关文章推荐

SQL Server2005 DBLINK链接Oracle 9i详解

  • 2010年07月14日 16:40
  • 126KB
  • 下载

Oracle空闲等待事件SQL*Net message from dblink不一定没问题

开发找到我说一个数据库定时任务一直没有执行,因为JOB下一次执行时间一直不动。遇到这种问题,首先要看数据库报告,因为有可能是JOB hang住了,特别是有DB link的业务。     果然,排在第一...

如何创建从SQL到Oracle的DBlink

要创建一个从SQL到Oracle的DBlink,首先需要在该SQL端安装Oracle的客户端(用oracle自己提供的instant client不知道可不可以,没尝试过),安装好客户端以后,可以按照...

oracle使用dblink连接sql server

环境说明: 数据库版本:11gR2 透明网关版本:11g 2 下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/...
  • Cbh5425
  • Cbh5425
  • 2016年06月08日 14:26
  • 804

Oracle通过DBlink连接MySQL

  • 2017年09月21日 15:33
  • 57KB
  • 下载

Oracle Dblink and synonym(同义词)

  • 2013年07月09日 18:50
  • 69KB
  • 下载

PL/SQL客户端创建DBLink入门教程

有时候数据库之间需要数据交互,但是我们的系统不可能配置两个数据库访问连接,我个人认为,如果配置两个数据库连接这样会给系统增加交互负担。而创建了DBLink之后,我们所开发的系统就可以只配置一个数据库连...

oracle创建DBlink

  • 2014年06月25日 17:40
  • 1KB
  • 下载

PostgreSQL的小技巧(dblink,SQL administrator,dbsize)-

(1)和Oracle类似的dblink功能 使用过oracle的人都知道,oracle有个很先进的功能叫:dblink,能够在一个数据库中操作另外 一个远程的数据库,比如:一个数据库在中国北京,另外一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle dblink不知源的SQL
举报原因:
原因补充:

(最多只允许输入30个字)