为什么Oracle同义词会向基本表返回差异数目的行?
发布时间:2021-03-07 09:17:41 所属栏目:站长百科 来源:网络整理
导读:我有一个很是不通俗的环境,我但愿有人可以或许阐发.我对oracle同义词的领略是它根基上是另一个模式中表的别名. 当我从同义词举办计数时,它返回零行.当我从基本表执行沟通操纵时,它返回12,000行. 我无法表明这种差别.有人可以资助吗? select * from dba_synonyms
我有一个很是不通俗的环境,我但愿有人可以或许阐发.我对oracle同义词的领略是它根基上是另一个模式中表的别名. 当我从同义词举办计数时,它返回零行.当我从基本表执行沟通操纵时,它返回12,000行. 我无法表明这种差别.有人可以资助吗? select * from dba_synonyms where synonym_name = 'CS_INCIDENTS_B_SEC'; OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK ------ ------------------- ------------ ------------------- ------- APPS CS_INCIDENTS_B_SEC CS CS_INCIDENTS_ALL_B select count(*) from CS.CS_INCIDENTS_ALL_B; COUNT(*) ---------------------- 12549 select count(*) from APPS.CS_INCIDENTS_B_SEC; COUNT(*) ---------------------- 0 表明打算: 直接在桌子上…… EXPLAIN PLAN FOR SELECT * FROM CS.CS_INCIDENTS_ALL_B PLAN_TABLE_OUTPUT -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes| Cost(%CPU)| -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 6056 | 1549K| 122 (3)| | 1 | TABLE ACCESS FULL| CS_INCIDENTS_ALL_B | 6056 | 1549K| 122 (3)| -------------------------------------------------------------------------- 通过同义词…… EXPLAIN PLAN FOR SELECT * FROM APPS.CS_INCIDENTS_B_SEC PLAN_TABLE_OUTPUT --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes| Cost(%CPU)| --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 262 | 0 (0)| |* 1 | FILTER | | | | | | 2 | TABLE ACCESS FULL| CS_INCIDENTS_ALL_B | 6056 | 1549K| 122 (3)| --------------------------------------------------------------------------- 1 - filter(NULL IS NOT NULL) 同义词链…… SQL> SELECT * 2 FROM dba_synonyms 3 START WITH 4 owner = 'CS' 5 AND synonym_name = 'CS_INCIDENTS_ALL_B' 6 CONNECT BY 7 owner = PRIOR table_owner 8 AND synonym_name = PRIOR table_name 9 / no rows selected SQL> SELECT * 2 FROM dba_synonyms 3 START WITH 4 owner = 'APPS' 5 AND synonym_name = 'CS_INCIDENTS_B_SEC' 6 CONNECT BY 7 owner = PRIOR table_owner 8 AND synonym_name = PRIOR table_name 9 / 搜查数据库的计策… SQL> SELECT * 2 FROM dba_policies 3 WHERE OBJECT_NAME = 'CS_INCIDENTS_B_SEC' 4 / OBJECT_OWNER OBJECT_NAME POLICY_GROUP POLICY_NAME ------------- ------------------- ------------- -------------------- APPS CS_INCIDENTS_B_SEC SYS_DEFAULT CS_SR_SEC_SR_ACCESS PF_OWNER PACKAGE FUNCTION SEL INS UPD DEL IDX CHK --------- ------------------ -------------- --- --- --- --- --- --- APPS FND_GENERIC_POLICY GET_PREDICATE YES NO NO NO NO NO ENABLE STATIC_POLICY POLICY_TYPE LONG_PREDICATE ------ ------------- ------------ -------------- YES NO DYNAMIC YES 办理要领更新:您已启用 每次会见表时城市挪用用户函数FND_GENERIC_POLICY.GET_PREDICATE,并限定对某些行的会见. 它会返回差异的功效,详细取决于您怎样会见表:直接或通过SYNONYM. 您必要查察该函数并查察正在举办的操纵(或在此处宣布函数文本). (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |