|

DESC REXX Source Code
Download this source code in text format (DESCREXX)
/* Rexx */ /* .................................................................. */ /* Author : Kannan AK */ /* Desc : Give struture of the DB2 tables */ /* Syntax : TSO DESC DB2SSID CREATOR.TABLE */ /* Version : Alpha */ /* .................................................................. */ Parse Upper Arg DB2sub Creator . Parse Value Creator with Creator '.' Table
If strip(DB2sub)='' | strip(Creator) = '' | strip(Table) = '' Then Do
Say 'Syntax: TSO DESC DB2SSID CREATOR.TABLE'
Exit 8
End
Address ISPEXEC 'Control Errors Return'
x = OutTrap("DB2out.","*")
Call AllocateIn
Call AllocateOut
Call ExecuteDSNTEP2
Call CleanUp
x = OutTrap("OFF")
Exit 1
AllocateIn :
Address TSO
Do queued();Pull;End
Queue "SELECT NAME, COLTYPE, LENGTH, SCALE, NULLS"
Queue "FROM SYSIBM.SYSCOLUMNS"
Queue "WHERE TBNAME = '"Table"'"
Queue "AND TBCREATOR = '"Creator"'"
Queue "ORDER BY COLNO"
Queue "WITH UR;"
'ALLOC F(SYSIN) REUSE NEW DEL UNIT(SYSDA) LRECL(80) RECFM(F B)
SPACE(10,10) TRACK RELEASE DSO(PS) BLKSIZE(80)'
'EXECIO 6 DISKW SYSIN (FINIS'
"Delete "USERID()".SYSPRINT"
Do queued();Pull;End
Return
AllocateOut :
Address TSO
" ALLOC F(SYSPRINT) NEW UNIT(SYSDA) SPACE(8,2)",
" TRACKS REUSE DSNAME('"USERID()".SYSPRINT')"
Return
ExecuteDSNTEP2:
Address TSO "NEWSTACK"
Queue "RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) ",
"LIBRARY('SYS0.DB2.PROD.RUNLIB.LOAD') PARMS('ALIGN(LHS)')"
Queue "END"
Queue
Address TSO "DSN SYSTEM("DB2sub")"
Address TSO "DELSTACK"
Address ISPEXEC "LMINIT DATAID(DSID) DDNAME(SYSPRINT)"
Address ISPEXEC "BROWSE DATAID("DSID")"
Address ISPEXEC "LMFREE DATAID("DSID")"
Return
CleanUp:
Address TSO "Delete '"USERID()".SYSPRINT'"
Return
|