2017-07-13 34 views
-2

當查詢下表時,它返回零記錄。HZ_CUST_SITE_USES沒有行返回

SQL> select count(*) from HZ_CUST_SITE_USES; 

COUNT(*) 
---------- 
     0 

SQL> 

可以請你幫我點一個

+0

如何從'HZ_CUST_SITE_USES_ALL'選擇count(*)? – APC

+0

我可以從HZ_CUST_SITE_USES_ALL獲取記錄,但爲什麼不能從HZ_CUST_SITE_USES獲取記錄? –

回答

1

每My Oracle Support的(文檔ID 787677.1),你已經啓用國有同義詞

的APPS安全策略這是一套標準與在Oracle R12環境中擁有同義詞的[email protected]相關聯。

首先,確認[email protected]擁有的代名詞時,沒有設置一個組織特定的安全政策環境將導致空集查詢:

[email protected]>SELECT COUNT(1) FROM HZ_CUST_SITE_USES; 
COUNT(1) 
0   

下一頁確認安全策略已應用於此[email protected]擁有的同義詞:

[email protected]>SELECT object_name, 
    2 policy_group, 
    3 policy_name, 
    4 PACKAGE, 
    5 FUNCTION, 
    6 sel, 
    7 enable 
    8 FROM dba_policies 
    9 WHERE object_name = 'HZ_CUST_SITE_USES'; 
OBJECT_NAME  POLICY_GROUP POLICY_NAME PACKAGE FUNCTION  SEL ENABLE 
HZ_CUST_SITE_USES SYS_DEFAULT ORG_SEC  MO_GLOBAL ORG_SECURITY YES YES  

只是確認對象類型的代名詞:

[email protected]>SELECT owner, 
    2 object_name, 
    3 object_type 
    4 FROM DBA_OBJECTS 
    5 WHERE 1   =1 
    6 AND OBJECT_NAME = 'HZ_CUST_SITE_USES'; 
OWNER OBJECT_NAME  OBJECT_TYPE 
APPS HZ_CUST_SITE_USES SYNONYM  

查詢與AR擁有的表相關聯的[email protected]視圖,HZ_CUST_SITE_USES_ALL

[email protected]>--APPS owned view r12.2 
[email protected]>SELECT ORG_ID, COUNT(1) FROM HZ_CUST_SITE_USES_ALL GROUP BY ORG_ID; 
ORG_ID COUNT(1) 
123  458  
456  2658  
789  1210  

一旦所述上下文被設置爲會話(org_id是456),一個可以查詢該org_id結果:

[email protected]>--set policy 
[email protected]>EXEC mo_global.set_policy_context('S', 456); 

PL/SQL procedure successfully completed. 

[email protected]>SELECT COUNT(1) FROM HZ_CUST_SITE_USES; 
COUNT(1) 
2658  
+0

對不起,延遲迴復謝謝你 –