LoginSignup
0
0

More than 5 years have passed since last update.

Oracle OWNER, OBJECT_TYPE, STATUS毎の件数取得

Last updated at Posted at 2018-02-08
count_objects.sql
--
-- OWNER, OBJECT_TYPE, STATUS毎の件数取得
--
SET ECHO OFF
SET FEEDBACK OFF
SET LINESIZE 120
SET PAGESIZE 50000
SET TAB OFF
SET TERMOUT OFF
SET TRIMSPOOL ON
-- SPOOL pass includes CONNECT_IDENTIFIER, USER_NAME and SYSDATE
COLUMN USER_NAME    NEW_VALUE USER_NAME
COLUMN SYSTEM_DATE  NEW_VALUE SYSTEM_DATE
SELECT USER || '_' AS USER_NAME
     , TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') AS SYSTEM_DATE
FROM DUAL ;
SPOOL count_objects_&&_CONNECT_IDENTIFIER._&&USER_NAME&&SYSTEM_DATE..log
-- Windows ↑,  UNIX/Linux では ↓ を有効に
-- SPOOL count_objects_\&&_CONNECT_IDENTIFIER._\&&USER_NAME\&&SYSTEM_DATE..log
COLUMN OWNER        FORMAT A15
COLUMN OBJECT_TYPE  FORMAT A21
COLUMN STATUS       FORMAT A10
COLUMN COUNTS       FORMAT 999,990
BREAK ON OWNER SKIP 1 ON OBJECT_TYPE
SELECT
    NVL(OB.OWNER      , 'OWNER TOTAL')       AS OWNER
  , NVL(OB.OBJECT_TYPE, 'OBJECT_TYPE TOTAL') AS OBJECT_TYPE
  , NVL(OB.STATUS     , 'STATUS TOTAL')      AS STATUS
  , COUNT(*) AS COUNTS
FROM DBA_OBJECTS OB
WHERE OB.OWNER NOT IN  -- 今回はOracle側スキーマを除く。お客様によってはこれで良いかは保証の限りではない。笑い
    (
    'ANONYMOUS'
  , 'APEX_030200'
  , 'APEX_040000'
  , 'APEX_040200'
  , 'APEX_PUBLIC_USER'
  , 'APPQOSSYS'
  , 'AURORA$JIS$UTILITY$'
  , 'AURORA$ORB$UNAUTHENTICATE'
  , 'CLUSTER_MONITOR'
  , 'CTXSYS'
  , 'DBSNMP'
  , 'DIP'
  , 'DMSYS'
  , 'EXFSYS'
  , 'FLOWS_FILES'
  , 'LBACSYS'
  , 'HR'
  , 'MDDATA'
  , 'MDSYS'
  , 'MGMT_VIEW'
  , 'OAS_PUBLIC'
  , 'ODM'
  , 'ODM_MTR'
  , 'OE'
  , 'OLAPSYS'
  , 'ORACLE_OCM'
  , 'ORDDATA'
  , 'ORDPLUGINS'
  , 'ORDSYS'
  , 'OSE$HTTP$ADMIN'
  , 'OUTLN'
  , 'OWBSYS'
  , 'OWBSYS_AUDIT'
  , 'PERFSTAT'
  , 'PM'
  , 'PUBLIC'
  , 'PUBUSR1'
  , 'QS'
  , 'QS_ADM'
  , 'QS_CB'
  , 'QS_CBADM'
  , 'QS_CS'
  , 'QS_ES'
  , 'QS_OS'
  , 'QS_WS'
  , 'REPADMIN'
  , 'RMAN'
  , 'SCOTT'
  , 'SH'
  , 'SI_INFORMTN_SCHEMA'
  , 'SPATIAL_CSW_ADMIN_USR'
  , 'SPATIAL_WFS_ADMIN_USR'
  , 'SYS'
  , 'SYSADM'
  , 'SYSMAN'
  , 'SYSTEM'
  , 'TRACESVR'
  , 'TSMSYS'
  , 'WEBSYS'
  , 'WK_TEST'
  , 'WKPROXY'
  , 'WKSYS'
  , 'WMSYS'
  , 'XDB'
  , 'XS$NULL'
    )
AND OB.OBJECT_NAME NOT LIKE 'BIN$%' -- except trash box, since Oracle10.1.0, DBA_OBJECTS にも DROPPED列が欲しい
AND OB.OBJECT_NAME NOT IN
        (
        'CHAINED_ROWS'  -- except Oracle side table
      , 'EXCEPTIONS'
      , 'PLAN_TABLE'
      , 'PLAN_TABLE$'
        )
GROUP BY CUBE
    (    ----
    OB.OWNER
  , OB.OBJECT_TYPE
  , OB.STATUS
    )
ORDER BY
    OB.OWNER
  , OB.OBJECT_TYPE
  , OB.STATUS ;
SPOOL OFF
COLUMN OWNER        CLEAR
COLUMN OBJECT_TYPE  CLEAR
COLUMN STATUS       CLEAR
COLUMN COUNTS       CLEAR
CLEAR BREAKS
SET ECHO ON
SET FEEDBACK ON
SET LINESIZE 80
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0