Oracle comment report
Oracle comment
set serveroutput on size 1000000
spool docdb.txt
DECLARE
l_unixdb_owner VARCHAR2(20) := UPPER('&1');
CURSOR get_tc IS
SELECT * FROM dba_tab_comments
WHERE comments IS NOT NULL
AND owner=l_unixdb_owner
AND table_name not like '%JN' -- omit Designer journal tables
ORDER BY table_name;
CURSOR get_cc (p_owner dba_tables.owner%TYPE
,p_table_name dba_tables.table_name%TYPE) IS
SELECT dcc.comments
, dtc.column_name
, DECODE(dtc.nullable,'Y','(Optional)','N','(Mandatory)') nullable
FROM dba_col_comments dcc, dba_tab_columns dtc
WHERE dcc.owner = dtc.owner
AND dcc.table_name = dtc.table_name
AND dcc.column_name = dtc.column_name
AND dcc.owner=p_owner AND dcc.table_name= p_table_name
AND dcc.comments IS NOT NULL
ORDER BY dtc.column_name
;
BEGIN
FOR tab_rec IN get_tc LOOP
dbms_output.put_line('.');
dbms_output.put_line('------------------- Start Of '
||tab_rec.table_type
||' '
||tab_rec.table_name
|| ' ---------------------');
dbms_output.put_line('.');
dbms_output.put_line(tab_Rec.table_type||' Description');
dbms_output.put_line('-----------------');
dbms_output.put_line(tab_rec.comments);
FOR col_rec IN get_cc (tab_rec.owner, tab_rec.table_name) LOOP
IF get_cc%ROWCOUNT = 1 THEN
dbms_output.put_line('.');
dbms_output.put_line('Column Descriptions');
dbms_output.put_line('-------------------');
END IF;
dbms_output.put_line (col_rec.column_name
||' '||col_rec.nullable);
dbms_output.put_line (col_rec.comments);
END LOOP;
dbms_output.put_line('.');
dbms_output.put_line('------------------- End Of Object ---------------------'
);
END LOOP;
END;
/
@comment SYSTEM
------------------- End Of Object ---------------------
.
------------------- Start Of TABLE REPCAT$_TEMPLATE_TYPES ---------------------
.
TABLE Description
-----------------
Internal table for maintaining types of templates.
.
Column Descriptions
-------------------
FLAGS (Optional)
Bitmap flags controlling each type of template.
SPARE1 (Optional)
Reserved for future expansion.
TEMPLATE_DESCRIPTION (Optional)
Description of the template type.
TEMPLATE_TYPE_ID (Mandatory)
Internal primary key of the template types table.
.
------------------- End Of Object ---------------------
Search This Blog
Total Pageviews
Tuesday, 18 October 2011
Oracle Object summary on schema
Oracle Object summary on schema
Oracle Object list user wise
Oracle Object summary on schema
Object summary on user wise set pagesize 10000 wrap off linesize 200 heading on tab on scan on verify off column tab format 9999 heading "tab" column ind format 9999 heading "ind" column syn format 9999 heading "syn" column vew format 9999 heading "vew" column seq format 9999 heading "seq" column prc format 9999 heading "prc" column fun format 9999 heading "fun" column pck format 9999 heading "pck" column trg format 9999 heading "trg" column dep format 9999 heading "dep" spool list_objects_by_user.lst ttitle 'Object count by user' - skip 2 select substr(username,1,10) "user", count(decode(o.type#, 2, o.obj#, '')) tab, count(decode(o.type#, 1, o.obj#, '')) ind, count(decode(o.type#, 5, o.obj#, '')) syn, count(decode(o.type#, 4, o.obj#, '')) vew, count(decode(o.type#, 6, o.obj#, '')) seq, count(decode(o.type#, 7, o.obj#, '')) prc, count(decode(o.type#, 8, o.obj#, '')) fun, count(decode(o.type#, 9, o.obj#, '')) pck, count(decode(o.type#,12, o.obj#, '')) trg, count(decode(o.type#,10, o.obj#, '')) dep from sys.obj$ o, sys.dba_users u where u.user_id = o.owner# (+) and o.type# > 0 group by username order by 1; spool off set feed on echo off termout on pages 24 verify on @obj.sql Object count by user user tab ind syn vew seq prc fun pck trg dep ---------------------------------------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ABC 1 0 0 0 0 0 0 0 0 0 ANUJ 4 2 0 0 0 0 0 0 0 0 ANUJREP 1 1 0 0 0 0 0 0 0 0 ANUJTEST 1 0 0 0 0 0 0 0 0 0 APEX_03020 360 1101 45 125 4 19 12 189 366 0 APEX_04000 426 1362 54 175 3 19 12 234 439 0 APPQOSSYS 2 0 1 0 0 0 0 0 0 0 BI 0 0 8 0 0 0 0 0 0 0 CTXSYS 47 58 0 71 3 2 2 73 0 0 DBSNMP 25 13 1 7 2 1 0 4 0 0 EXFSYS 47 41 0 56 1 10 26 18 5 0 FLOWS_FILE 1 5 5 0 0 0 0 0 1 0 GGATE 12 17 0 0 2 4 4 2 0 0 HR 7 19 0 1 3 2 0 0 2 0 IX 17 17 0 8 2 0 0 0 0 0 MDSYS 123 208 0 86 15 2 107 70 53 0 OE 14 48 6 13 1 0 1 0 4 0 OLAPSYS 126 137 0 307 5 0 1 45 48 0 ORACLE_OCM 0 0 0 0 0 0 0 3 0 0 ORDDATA 73 138 0 25 12 0 0 0 0 0 ORDPLUGINS 0 0 0 0 0 0 0 5 0 0 ORDSYS 5 4 0 5 0 7 32 28 0 0 OUTLN 3 5 0 0 0 1 0 0 0 0 OWBSYS 1 1 0 0 0 0 0 0 0 0 OWBSYS_AUD 0 0 12 0 0 0 0 0 0 0 PERFSTAT 72 72 0 1 1 0 0 1 0 0 PM 3 21 0 0 0 0 0 0 0 0 RMAN 44 96 0 98 1 0 2 2 3 0 SCOTT 15 9 0 0 2 0 3 0 0 0 SH 17 29 0 1 0 0 0 0 0 0 SI_INFORMT 0 0 8 0 0 0 0 0 0 0 SYS 1013 1200 9 3761 136 107 107 628 11 0 SYSTEM 157 232 8 12 20 1 0 1 2 0 TEST_USER 0 0 0 0 0 0 1 0 0 0 VIHAAN 1 0 0 0 0 0 0 0 0 0 WMSYS 45 69 0 110 9 4 4 22 2 0 XDB 81 468 0 5 5 4 7 34 27 5 37 rows selected. ======================================== column name format a13 trunc heading SCHEMA column cl format 99999 heading CLSTR column ta format 99999 heading TABLE column ix format 99999 heading INDEX column se format 99999 heading SEQNC column tr format 99999 heading TRIGR column fn format 99999 heading FUNCT column pr format 99999 heading PROCD column pa format 99999 heading PACKG column vi format 99999 heading VIEWS column sy format 99999 heading SYNYM column ot format 99999 heading OTHER break on report compute sum of cl ta ix se tr fn pr pa vi sy ot on report select u.name, sum(decode(o.type#, 3, objs)) cl, sum(decode(o.type#, 2, objs)) ta, sum(decode(o.type#, 1, objs)) ix, sum(decode(o.type#, 6, objs)) se, sum(decode(o.type#, 12,objs)) tr, sum(decode(o.type#, 8, objs)) fn, sum(decode(o.type#, 7, objs)) pr, sum(decode(o.type#, 9, objs)) pa, sum(decode(o.type#, 4, objs)) vi, sum(decode(o.type#, 5, objs)) sy, sum(decode(o.type#, 1,0, 2,0, 3,0, 4,0, 5,0, 6,0, 7,0, 8,0, 9,0, 12,0, objs)) ot from (select owner#, type#, count(*) objs from sys.obj$ group by owner#, type#) o, sys.user$ u where u.user# = o.owner# group by u.name order by decode(u.name, 'SYS', 1, 'SYSTEM', 2, 'PUBLIC', 3, 4), u.name / SQL> @obj1 object count by user SCHEMA CLSTR TABLE INDEX SEQNC TRIGR FUNCT PROCD PACKG VIEWS SYNYM OTHER ------------- ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ SYS 10 1013 1200 136 11 107 107 628 3761 9 24507 SYSTEM 157 232 20 2 1 1 12 8 119 PUBLIC 27507 0 ABC 1 0 ANUJ 4 2 0 ANUJREP 1 1 0 ANUJTEST 1 0 APEX_030200 360 1101 4 366 12 19 189 125 45 340 APEX_040000 426 1362 3 439 12 19 234 175 54 420 APPQOSSYS 2 1 0 BI 8 0 CTXSYS 47 58 3 2 2 73 71 112 DBSNMP 25 13 2 1 4 7 1 12 EXFSYS 47 41 1 5 26 10 18 56 108 FLOWS_FILES 1 5 1 5 1 GGATE 12 17 2 4 4 2 2 HR 7 19 3 2 2 1 0 IX 17 17 2 8 14 MDSYS 123 208 15 53 107 2 70 86 939 OE 14 48 1 4 1 13 6 55 OLAPSYS 126 137 5 48 1 45 307 52 ORACLE_OCM 3 5 ORDDATA 73 138 12 25 9 ORDPLUGINS 5 5 ORDSYS 5 4 32 7 28 5 2451 OUTLN 3 5 1 1 OWBSYS 1 1 0 OWBSYS_AUDIT 12 0 PERFSTAT 72 72 1 1 1 1 PM 3 21 20 RMAN 44 96 1 3 2 2 98 6 SCOTT 15 9 2 3 3 SH 17 29 1 261 SI_INFORMTN_S 8 0 TEST_USER 1 0 VIHAAN 1 0 WMSYS 45 69 9 2 4 4 22 110 59 XDB 81 468 5 27 7 4 34 5 558 ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ sum 10 2744 5373 227 963 321 183 1359 4867 27664 30060 38 rows selected. ============= SET PAGES 100 LINESIZE 120 TRIMS ON ECHO OFF VERIFY ON FEEDBACK ON COLUMN owner FORMAT a19 HEADING "Owner" COLUMN sum_table FORMAT 999,999 HEADING "Tables" COLUMN sum_index FORMAT 999,999 HEADING "Indexes" COLUMN sum_view FORMAT 999,999 HEADING "Views" COLUMN sum_sequence FORMAT 999,999 HEADING "Sequences" COLUMN sum_synonym FORMAT 999,999 HEADING "Synonyms" COLUMN sum_cluster FORMAT 999,999 HEADING "Clusters" COLUMN sum_procedure FORMAT 999,999 HEADING "Procedures" COLUMN sum_package FORMAT 999,999 HEADING "Packages" COLUMN sum_package_body FORMAT 999,999 HEADING "Pckg Bodies" COLUMN sum_db_link FORMAT 999,999 HEADING "DB Links" COMPUTE SUM OF sum_table ON REPORT COMPUTE SUM OF sum_index ON REPORT COMPUTE SUM OF sum_view ON REPORT COMPUTE SUM OF sum_sequence ON REPORT COMPUTE SUM OF sum_synonym ON REPORT COMPUTE SUM OF sum_cluster ON REPORT COMPUTE SUM OF sum_procedure ON REPORT COMPUTE SUM OF sum_package ON REPORT COMPUTE SUM OF sum_package_body ON REPORT COMPUTE SUM OF sum_db_link ON REPORT spool object.lst SELECT O.owner, Sum( Decode( O.object_type, 'TABLE', 1, 0)) AS "sum_table", Sum( Decode( O.object_type, 'INDEX', 1, 0)) AS "sum_index", Sum( Decode( O.object_type, 'VIEW', 1, 0)) AS "sum_view", Sum( Decode( O.object_type, 'SEQUENCE', 1, 0)) AS "sum_sequence", Sum( Decode( O.object_type, 'SYNONYM', 1, 0)) AS "sum_synonym", Sum( Decode( O.object_type, 'CLUSTER', 1, 0)) AS "sum_cluster", Sum( Decode( O.object_type, 'PROCEDURE', 1,0)) AS "sum_procedure", Sum( Decode( O.object_type, 'PACKAGE', 1, 0)) AS "sum_package", Sum( Decode( O.object_type, 'PACKAGE BODY',1,0)) AS "sum_package_body", Sum( Decode( O.object_type, 'DATABASE LINK', 1,0)) AS "sum_db_link" FROM dba_objects O GROUP BY O.owner / SPOOL OFF CLEAR COLUMNS CLEAR COMPUTES Owner Tables Indexes Views Sequences Synonyms Clusters Procedures Packages Pckg Bodies DB Links ------------------- -------- -------- -------- --------- -------- -------- ---------- -------- ----------- -------- OWBSYS_AUDIT 0 0 0 0 12 0 0 0 0 0 MDSYS 123 114 86 15 0 0 2 70 66 0 RMAN 44 96 98 1 0 0 0 2 2 0 PUBLIC 0 0 0 0 27,507 0 0 0 0 0 OUTLN 3 4 0 0 0 0 1 0 0 0 CTXSYS 47 56 71 3 0 0 2 73 62 0 OLAPSYS 126 135 307 5 0 0 0 45 43 0 FLOWS_FILES 1 4 0 0 5 0 0 0 0 0 OWBSYS 1 1 0 0 0 0 0 0 0 0 HR 7 19 1 3 0 0 2 0 0 0 ANUJTEST 1 0 0 0 0 0 0 0 0 0 SYSTEM 157 210 12 20 8 0 1 1 1 0 ORACLE_OCM 0 0 0 0 0 0 0 3 3 0 EXFSYS 47 39 56 1 0 0 10 18 18 0 SCOTT 17 9 0 2 0 0 0 0 0 0 ABC 1 0 0 0 0 0 0 0 0 0 APEX_030200 360 946 125 4 45 0 19 189 181 0 APEX_040000 426 1,177 175 3 54 0 19 234 227 0 PM 3 4 0 0 0 0 0 0 0 0 OE 14 33 13 1 6 0 0 0 0 0 DBSNMP 25 13 7 2 1 0 1 4 4 0 ORDSYS 5 4 5 0 0 0 7 28 20 0 ORDPLUGINS 0 0 0 0 0 0 0 5 5 0 SH 17 27 1 0 0 0 0 0 0 0 IX 17 14 8 2 0 0 0 0 0 0 APPQOSSYS 2 0 0 0 1 0 0 0 0 0 XDB 81 128 5 5 0 0 4 34 33 0 ORDDATA 73 129 25 12 0 0 0 0 0 0 BI 0 0 0 0 8 0 0 0 0 0 SYS 1,012 1,026 3,761 136 9 10 107 628 602 0 WMSYS 45 61 110 9 0 0 4 22 22 0 SI_INFORMTN_SCHEMA 0 0 0 0 8 0 0 0 0 0 ANUJ 4 2 0 0 0 0 0 0 0 0 GGATE 12 16 0 2 0 0 4 2 1 0 PERFSTAT 72 72 1 1 0 0 0 1 1 0 TEST_USER 0 0 0 0 0 0 0 0 0 0 ANUJREP 1 1 0 0 0 0 0 0 0 0 VIHAAN 1 0 0 0 0 0 0 0 0 0 38 rows selected.
set linesize 300
SET SERVEROUTPUT ON;
DECLARE
v_sql CLOB;
BEGIN
---------------------------------------------------------------------
-- 1. Build dynamic SQL with SUM(DECODE()) for all object types
---------------------------------------------------------------------
SELECT 'SELECT ' ||
LISTAGG(
'SUM(DECODE(object_type, ''' || object_type || ''', 1, 0)) AS sum_' ||
REPLACE(LOWER(object_type), ' ', '_'),
', '
) WITHIN GROUP (ORDER BY object_type)
|| ', COUNT(*) AS total_objects ' ||
'FROM dba_objects WHERE owner = ''ANUJ'''
INTO v_sql
FROM (SELECT DISTINCT object_type
FROM dba_objects
WHERE owner = 'ANUJ');
---------------------------------------------------------------------
-- 2. Print the generated SQL (optional)
---------------------------------------------------------------------
DBMS_OUTPUT.PUT_LINE('Generated SQL:');
DBMS_OUTPUT.PUT_LINE(v_sql);
---------------------------------------------------------------------
-- 3. Execute the dynamic SQL
---------------------------------------------------------------------
EXECUTE IMMEDIATE v_sql;
END;
/
==========
SET LINESIZE 300 PAGESIZE 50 VERIFY OFF FEEDBACK ON
define O='ANUJ'
SELECT
'Object Counts for ' || UPPER('&O') AS "SCHEMA",
SUM(DECODE(object_type, 'TRIGGER', 1, 0)) AS sum_TRIGGER,
-- Count objects that are TABLEs BUT DO NOT start with MLOG$
SUM(CASE WHEN object_type = 'TABLE' AND object_name NOT LIKE 'MLOG$_%' THEN 1 ELSE 0 END) AS sum_TABLE,
-- Count objects that are TABLEs AND start with MLOG$
SUM(CASE WHEN object_type = 'TABLE' AND object_name LIKE 'MLOG$_%' THEN 1 ELSE 0 END) AS sum_MV_LOG,
SUM(DECODE(object_type, 'FUNCTION', 1, 0)) AS sum_FUNCTION,
SUM(DECODE(object_type, 'SEQUENCE', 1, 0)) AS sum_SEQUENCE,
SUM(DECODE(object_type, 'PACKAGE BODY', 1, 0)) AS sum_PACKAGEBODY,
SUM(DECODE(object_type, 'INDEX', 1, 0)) AS sum_INDEX,
SUM(DECODE(object_type, 'LOB', 1, 0)) AS sum_LOB,
SUM(DECODE(object_type, 'JOB', 1, 0)) AS sum_JOB,
SUM(DECODE(object_type, 'MATERIALIZED VIEW', 1, 0)) AS sum_MATERIALIZEDVIEW,
SUM(DECODE(object_type, 'PACKAGE', 1, 0)) AS sum_PACKAGE,
SUM(DECODE(object_type, 'PROCEDURE', 1, 0)) AS sum_PROCEDURE,
SUM(DECODE(object_type, 'VIEW', 1, 0)) AS sum_VIEW,
COUNT(*) AS total_objects
FROM
dba_objects o
WHERE
owner = UPPER('&O')
GROUP BY
'Object Counts for ' || UPPER('&O')
/
SET VERIFY ON
Subscribe to:
Comments (Atom)
Oracle DBA
anuj blog Archive
- ▼ 2011 (362)
