1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
REM =====================================================================
REM
REM USER078
REM
REM Calcul de la longueur moyenne de chaque ligne
REM
REM plabrevo 12/03/91 Creation
REM
REM =====================================================================
SET ECHO OFF
SET TERM ON
SET TIMING OFF
SET HEAD ON
SET VERI OFF
SET FEED OFF
SET PAUSE OFF
SET PAGES 71
SET RECSEP OFF
SET LINES 75
SET ARRAYSIZE 5
BTITLE OFF
TTITLE OFF
CLEAR BREAKS
CLEAR COMPUTE
CLEAR COLUMNS
ACCEPT tab_ CHAR PROMPT "Nom de la table au format LIKE (TOUS par defaut): "
COL l FOR A75
SET PAGES 0
SET TERM OFF
SPOOL 1ser078.&&user_
PROMPT SPOOL 2ser078.&&user_
SELECT 'SELECT ''SET TERM ON''l,'l,
'''SET DOC OFF''l,'l,
'''START envi''l,'l,
'''COL table_ FOR A56 HEAD "TABLE" TRUNC''l,'l,
'''COL long_ FOR 99990,V99 HEAD "LG MOY" TRUNC''l,'l,
'''COL taille_ FOR 9999990 HEAD "NB" TRUNC''l,'l,
'''START titre2 "User078" "Longueur reelle par table"''l,'l,
'''SPOOL User078.&&user_''l'l,
'FROM sys.dual'l,
'/'l
FROM sys.dual
/
SELECT DECODE(rownum,1,'','SELECT ''TTITLE OFF''l,')l,
DECODE(rownum,1,'','''SET HEAD OFF''l,')l,
DECODE(rownum,1,'','''SET PAGES 0''l')l,
DECODE(rownum,1,'','FROM sys.dual')l,
DECODE(rownum,1,'','/')l,
'SELECT ''#DOC''l'l,
'FROM sys.dual'l,
'/'l,
'SET TERM ON'l,
'#DOC'l,
u.table_name l,
'#'l,
'SET TERM OFF'l,
'SELECT ''#''l'l,
'FROM sys.dual'l,
'/'l,
'SELECT ''SELECT '''''||u.table_name||''''' table_,'''l,
'FROM sys.dual'l,
'/'l,
'SELECT DECODE(ROWNUM,1,''(0+3*COUNT(*)+'',''+'')l,'l,
'''NVL(SUM(NVL(VSIZE(''||u.column_name||''),0)+1),1)'''l,
'FROM user_tab_columns u'l,
'WHERE u.table_name = '''||u.table_name||''''l,
'/'l,
'SELECT '')/DECODE(COUNT(*),0,1,NULL,1,COUNT(*))long_,'','l,
'''COUNT(*) taille_'','l,
' ''FROM ''||'''||u.table_name||''','l,
'''/''l'l,
'FROM sys.dual'l,
'/'l
FROM user_tables u
WHERE NOT EXISTS
(SELECT 'x'
FROM user_tab_columns t
WHERE u.table_name = t.table_name
AND t.data_type = 'LONG')
AND u.table_name LIKE NVL(UPPER('&&tab_'),'%')
/
SELECT 'SELECT ''SPOOL OFF''l'l,
'FROM sys.dual'l,
'/'l
FROM sys.dual
/
SELECT 'SPOOL OFF'l,
'START 2ser078.&&user_'l
FROM sys.dual
/
SPOOL OFF
START 1ser078.&&user_ |
Partager