0
를 제공

같은 쿼리가 다른 결과

CREATE OR REPLACE PROCEDURE UPDATE_OBJ_COUNT 
AS 
BEGIN 
    FOR v_record IN (SELECT OWNER, COUNT(*) NUM_OBJ FROM ALL_OBJECTS GROUP BY OWNER ORDER BY OWNER) 
    LOOP 
     DBMS_OUTPUT.PUT_LINE('***DEBUG***: Schema: '||v_record.OWNER||', Obj count:'||v_record.NUM_OBJ); 
    END LOOP; 
END; 

(오라클)입니다 저장 프로 시저 다음과 같은 결과

***DEBUG***: Schema: ORACLE_OCM, Obj count:2 
***DEBUG***: Schema: DBCONTROL, Obj count:27 
***DEBUG***: Schema: PUBLIC, Obj count:22543 
***DEBUG***: Schema: SCH_PRIV, Obj count:11 
***DEBUG***: Schema: SYS, Obj count:22332 
***DEBUG***: Schema: SYSTEM, Obj count:5 
***DEBUG***: Schema: XDB, Obj count:181 

을 제공합니다 나는 익명 과 같은 코드를 실행하면 블록

BEGIN 
    FOR v_record IN (SELECT OWNER, COUNT(*) NUM_OBJ FROM ALL_OBJECTS GROUP BY OWNER ORDER BY OWNER) 
    LOOP 
     DBMS_OUTPUT.PUT_LINE('***DEBUG***: Schema: '||v_record.OWNER||', Obj count:'||v_record.NUM_OBJ); 
    END LOOP; 
END; 

다른 결과가 나옵니다 (정확하다고 생각합니다)

***DEBUG***: Schema: APPQOSSYS, Obj count:3 
***DEBUG***: Schema: DBSNMP, Obj count:55 
***DEBUG***: Schema: ORACLE_OCM, Obj count:8 
***DEBUG***: Schema: DBCONTROL, Obj count:27 
***DEBUG***: Schema: OUTLN, Obj count:8 
***DEBUG***: Schema: PUBLIC, Obj count:22543 
***DEBUG***: Schema: SCH_PRIV, Obj count:43 
***DEBUG***: Schema: SYS, Obj count:29321 
***DEBUG***: Schema: SYSTEM, Obj count:501 
***DEBUG***: Schema: TEST_SYAM_123, Obj count:3 
***DEBUG***: Schema: XDB, Obj count:474 

왜 그런가?

저장 프로 시저에서 일부 스키마를 찾을 수 없습니까?

저장 프로 시저을 사용하여 정확한 값을 얻으려면 어떻게해야합니까?

답변