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.
As, Xs,
or 9s 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