老蔡的幸福生活

人生真正的价值在于从何种意义与何种程度上摆脱自我
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

这个sql是怎么产生的?

Posted on 2008-12-01 19:23  一棵芹菜  阅读(342)  评论(0编辑  收藏  举报

在oracle中跟踪出如下语句:

SELECT *

  FROM (SELECT NULL            TABLE_CATALOG,
               AC.OWNER        TABLE_SCHEMA,
               AC.TABLE_NAME   TABLE_NAME,
               ACC.COLUMN_NAME COLUMN_NAME,
               NULL            COLUMN_GUID,
               NULL            COLUMN_PROPID,
               ACC.POSITION    ORDINAL
          FROM ALL_CONSTRAINTS AC, ALL_CONS_COLUMNS ACC
         WHERE AC.OWNER = ACC.OWNER
           AND AC.TABLE_NAME = ACC.TABLE_NAME
           AND AC.CONSTRAINT_TYPE = 'P'
           AND AC.CONSTRAINT_NAME = ACC.CONSTRAINT_NAME) DBSCHEMA_PRIMARY_KEYS
 WHERE TABLE_NAME = '"V_AWB_WAYBILLBAS_OUTLINE"'

 ORDER BY 3, 4

这是一条很奇怪的sql:

这个sql的作用是查询V_AWB_WAYBILLBAS_OUTLINE的约束信息,这个sql应该不是系统中的代码产生的,这个sql子查询的结果命名为DBSCHEMA_PRIMARY_KEYS,这是一个分布式架构行集,开发人员不大可能起这样的名字,所以我猜测应该是oracle本身产生的。我查到,用PL/SQL DEVELOPER这种工具,查看表信息的时候可能oracle会产生这样的sql语句,我猜是这种原因,只是猜测,有谁真正熟悉oracle,给解释一下?