DBD NAME=WIRETRN,ACCESS=(HDAM,OSAM), X RMNAME=(DFSHDC40,3,71) DATASET DD1=WIREDD,DEVICE=3380, BLOCK=2400 SEGM NAME=WIRETRAN,PARENT=0,BYTES=100 FIELD NAME=(SSNACCT,SEQ,M),BYTES=23,START=1, X TYPE=C FIELD NAME=ACCTTYPE,BYTES=1,START=24,TYPE=C FIELD NAME=WIREDATE,BYTES=8,START=25,TYPE=C FIELD NAME=WIRETIME,BYTES=8,START=33,TYPE=C FIELD NAME=WIREAMMT,BYTES=5,START=41,TYPE=X FIELD NAME=WIREDESC,BYTES=40,START=46,TYPE=C DBDGEN
Data Type Code
|
Data Type
|
---|---|
X
|
hexadecimal
|
P
|
packed decimal
|
C
|
alphanumeric character
|
F
|
binary fullword
|
H
|
binary halfword
|
Z
|
zoned decimal
|
E
|
short floating point
|
D
|
long floating point
|
L
|
extended floating point
|
IMS Type
|
COBOL
|
PL/I
|
Description
|
Standard Length in Bytes
|
Recommended DBFORMAT=
|
SAS
Format Generated
|
---|---|---|---|---|---|---|
C
|
PIC A
|
Pic 'A'
|
Alphabetic
|
<=200
>200
|
$w.
$200.
|
$w.
$200.
|
C
|
PIC X
|
Char or Pic 'X'
|
Alphanumeric
|
<=200
>200
|
$w.
$200.
|
$w.
$200.
|
Z
|
PIC 9
|
Pic '9'
|
Numeric Edited
|
w.
|
||
Z
|
PIC S9
|
Pic '99T'
|
Zoned-Decimal
|
ZDw.d
|
w.d
|
|
H
|
PIC 9(4) COMP
|
Fixed Bin (15)
|
Fixed-Point Binary
|
2
|
IB2.
|
7.0
|
F
|
PIC 9(8) COMP
|
Fixed Bin (31)
|
Fixed-Point Binary
|
4
|
IB4.
|
10.0
|
E
|
COMP-1
|
Float Bin (21)
|
Floating-Point
|
4
|
Rb4.
|
E13.0
|
D
|
COMP-2
|
Float Bin(53)
|
Floating-Point
|
8
|
RB8.
|
E22.0
|
P
|
COMP-3
|
Fixed Decimal
|
Packed-Decimal
|
<=16
|
PDw.d
|
w.d
|
A
or X
represent
character values.
9
to
represent digits. They might use an S
to
mean signed and a V
to show the location
of an implied decimal point.
A
s, X
s,
or 9
s in the picture or by the number in
parentheses immediately after the A
, X
,
or 9
. For example, AAAA
is
the same as A(4)
.
USAGE
|
PICTURE
|
SAS Informat
|
Width
|
Decimal
|
---|---|---|---|---|
COMP-1
|
None
|
RB4.
|
||
COMP-2
|
None
|
RB8.
|
|
|
DISPLAY
|
9(int)V9(fract)
|
ZDw.d
|
(int + fract)1
|
(fract)
|
COMP-3
|
9(int)V9(fract)
|
PDw.d
|
CEIL((int+fract+1)/2)1
|
(fract)
|
COMP
|
9(int)V9(fract)
|
IBw.d
|
*
|
|
1If the (int + fract) is 1-4, the width is 2 and decimal is a fraction. If the (int + fract) is 5-9, the width is 4 and decimal is a fraction. If the (int + fract) is 10-18, the width is 8 and decimal is a fraction. |
DBD 1NAME=ACCTDBD, 2ACCESS=(HDAM,OSAM), X 3RMNAME=(DFSHDC40,3,71) DATASET 4DD1=ACCTDD, 5DEVICE=3380, X 6BLOCK=2400 7SEGM NAME=CUSTOMER,PARENT=0,BYTES=225 8FIELD NAME=(SSNUMBER,SEQ,U),BYTES=11,START=1, X TYPE=C FIELD NAME=CUSTNAME,BYTES=40,START=12,TYPE=C FIELD NAME=CUSTADD1,BYTES=30,START=52,TYPE=C FIELD NAME=CUSTADD2,BYTES=30,START=82,TYPE=C FIELD NAME=CUSTCITY,BYTES=28,START=112,TYPE=C FIELD NAME=CUSTSTAT,BYTES=2,START=140,TYPE=C FIELD NAME=CUSTLAND,BYTES=20,START=142,TYPE=C FIELD NAME=CUSTZIP,BYTES=10,START=162,TYPE=C FIELD NAME=CUSTHPHN,BYTES=12,START=172,TYPE=C FIELD NAME=CUSTOPHN,BYTES=12,START=184,TYPE=C 7SEGM NAME=CHCKACCT,BYTES=40,PARENT=CUSTOMER 8FIELD NAME=(ACNUMBER,SEQ,U),BYTES=12,START=1, X TYPE=X FIELD NAME=STMTAMT,BYTES=5,START=13,TYPE=P FIELD NAME=STMTDATE,BYTES=6,START=18,TYPE=X FIELD NAME=STMTBAL,BYTES=5,START=26,TYPE=P 7SEGM NAME=CHCKDEBT,BYTES=80, X PARENT=((CHCKACCT,DBLE)),RULES=(,LAST) 8 FIELD NAME=DEBTAMT,BYTES=5,START=1,TYPE=P FIELD NAME=DEBTDATE,BYTES=6,START=6,TYPE=X FIELD NAME=DEBTBLNK,BYTES=2,START=12,TYPE=X FIELD NAME=DEBTTIME,BYTES=8,START=14,TYPE=C FIELD NAME=DEBTDESC,BYTES=59,START=22,TYPE=C 7SEGM NAME=CHCKCRDT,BYTES=80, X PARENT=((CHCKACCT,DBLE)),RULES=(,LAST) 8FIELD NAME=CRDTAMT,BYTES=5,START=1,TYPE=P FIELD NAME=CRDTDATE,BYTES=6,START=6,TYPE=X FIELD NAME=CRDTBLNK,BYTES=2,START=12,TYPE=X FIELD NAME=CRDTTIME,BYTES=8,START=14,TYPE=C FIELD NAME=CRDTDESC,BYTES=59,START=22,TYPE=C 7SEGM NAME=SAVEACCT,BYTES=40,PARENT=CUSTOMER 8FIELD NAME=(ACNUMBER,SEQ,U),BYTES=12,START=1, X TYPE=X FIELD NAME=STMTAMT,BYTES=5,START=13,TYPE=P FIELD NAME=STMTDATE,BYTES=6,START=18,TYPE=X FIELD NAME=STMTBAL,BYTES=5,START=26,TYPE=P 7SEGM NAME=SAVEDEBT,BYTES=80, X PARENT=((SAVEACCT,DBLE)),RULES=(,LAST) 8 FIELD NAME=DEBTAMT,BYTES=5,START=1,TYPE=P FIELD NAME=DEBTDATE,BYTES=6,START=6,TYPE=X FIELD NAME=DEBTBLNK,BYTES=2,START=12,TYPE=X FIELD NAME=DEBTTIME,BYTES=8,START=14,TYPE=C FIELD NAME=DEBTDESC,BYTES=59,START=22,TYPE=C 7SEGM NAME=SAVECRDT,BYTES=80, X PARENT=((SAVEACCT,DBLE)),RULES=(,LAST) 8FIELD NAME=CRDTAMT,BYTES=5,START=1,TYPE=P FIELD NAME=CRDTDATE,BYTES=6,START=6,TYPE=X FIELD NAME=CRDTBLNK,BYTES=2,START=12,TYPE=X FIELD NAME=CRDTTIME,BYTES=8,START=14,TYPE=C FIELD NAME=CRDTDESC,BYTES=59,START=22,TYPE=C DBDGEN
1 | The name of the DBD, which is also used as a shorthand name for the IMS database (1–8 characters). |
2 | The type and access method for the database (DEDB, MSDB, HDAM, HIDAM, HSAM, HISAM, GSAM, SHISAM, or SHSAM). These database types are defined in the next section. |
3 | The randomizing method to assign an address to each record's key (HDAM only). |
4 | The ddname for the database. |
5 | The device type. |
6 | The block size. |
7 | The name, parent, and length of each segment type in the database. The parent information enables IMS to determine the segment's position in the hierarchy. |
8 | The name, length, starting position, and type of data for each sequence and search field in each segment. (In the following example, the code that specifies these characteristics is highlighted.) |
PCB TYPE=DB,DBDNAME=ACCTDBD,PROCOPT=G, X KEYLEN=11 SENSEG NAME=CUSTOMER,PARENT=0,PROCOPT=G PCB TYPE=DB,DBDNAME=ACCTDBD,PROCOPT=G, X KEYLEN=23 SENSEG NAME=CUSTOMER,PARENT=0,PROCOPT=GP SENSEG NAME=CHCKACCT,PARENT=CUSTOMER,PROCOPT=G SENSEG NAME=SAVEACCT,PARENT=CUSTOMER,PROCOPT=G PCB TYPE=DB,DBDNAME=ACCTDBD,PROCOPT=A, X KEYLEN=23 SENSEG NAME=CUSTOMER,PARENT=0,PROCOPT=AP SENSEG NAME=CHCKACCT,PARENT=CUSTOMER,PROCOPT=AP SENSEG NAME=CHCKDEBT,PARENT=CHCKACCT,PROCOPT=A SENSEG NAME=CHCKCRDT,PARENT=CHCKACCT,PROCOPT=A SENSEG NAME=SAVEACCT,PARENT=CUSTOMER,PROCOPT=AP SENSEG NAME=SAVEDEBT,PARENT=SAVEACCT,PROCOPT=A SENSEG NAME=SAVECRDT,PARENT=SAVEACCT,PROCOPT=A PCB TYPE=DB,DBDNAME=WIRETRN,PROCOPT=A, X KEYLEN=23 SENSEG NAME=WIRETRAN,PARENT=0,PROCOPT=A PSBGEN LANG=ASSEM,IOASIZE=500,PSBNAME=ACCTSAM, X CMPAT=YES END