PICTURE Clause


The PICTURE clause is used to specify the characteristics of the variable while declaring it. i.e., variable type, length, etc.

Syntax -

 level-number variable-name 
				[PIC|PICTURE picture-symbol(variable-length)
				[VALUE literal]].
Note! All statements coded in [ ] are optional.

For example - Declaring a variable of alphabetic type to store a value HELLO.

 01 WS-VAR      PIC A(05) VALUE "HELLO".
  • level-number - Specifies the level number of the declaration from 01 to 49. From the example, it is 01.
  • variable-name - Specifies the name of the variable. From the example, it is WS-VAR.
  • PIC - PIC is a short form for PICTURE
  • picture-symbol (data-type-character) - Specifies the type of the variable. From the example, it is A (Alphabetic).
  • variable-length - Specifies the variable length to store the data. From the example, it is 05 (variable length is 5).
  • literal - Specifies the literal character string. From the example, it is HELLO.

Notes -

  • It should code with every elementary and individual variable to specify its type along with length.
  • The PICTURE clause should not code with the below -
    • Index variables
    • The RENAMES clause
    • Internal floating-point variables
    • 88-level number, USAGE COMP-1, and COMP-2.

PICTURE Symbol -


  • PICTURE symbol is the letter used to specify the type of the variable during its declaration.
  • PICTURE character-strings are separated only by space, comma, semicolon, or period.
  • PICTURE symbols are two types -
    • PICTURE symbol for data types
    • PICTURE symbol for editing.

For example -

A, B, E, G, N, P, S, V, X, Z, CR, DB.

PICTURE symbol for data types -


PICTURE symbol for data types specifies the PICTURE symbols assigned for each data type in COBOL. Those are -

Data Type PICTURE Symbol Declaration Meaning
Alphabetic A Alphabetic character or space. Represents alphabetic data type. For example -
Input PICTURE Clause Output
HELLO PIC A(5) HELLO
Numeric 9 Numeric character. Represents numeric data type. For example -
Input PICTURE Clause Output
123 PIC 9(5) 00123
000123 PIC 9(4) 0123
Alphanumeric X Alphanumeric character or space. Represents alphanumeric data type. For example -
Input PICTURE Clause Output
HELLO PIC X(5) HELLO
HI PIC X(5) HI
Assumed decimal point V Represents the decimal point. It is not counted in the size of the variable/variable. For example -
Input PICTURE Clause Output
123.45 PIC 999V99 12345
123.45 PIC 99V99 2345
Operational sign S Represents the Sign of the value. It is not counted in the size of the variable unless a SIGN clause with the SEPARATE CHARACTER phrase is specified. For example -
Input PICTURE Clause Output
-123 PIC S999 12L
+123 PIC S999 12C
-123 PIC S999 SIGN IS LEADING SEPERATE CHARACTER -123
-123 PIC S999 SIGN IS TRAILING SEPERATE CHARACTER 123-

PICTURE symbol for editing -


The PICTURE symbol for editing is used to represent the data in the user's desired format. These are classified into two types, and those are -

Insertion editing -

Type Description PIC Symbols
Simple insertion Simple insertion editing is inserting a character(s) in the PICTURE string.
B
0
/
  (Space)
Special insertion Special insertion editing represents the decimal point for alignment purposes.
. (Dot)
Fixed insertion Fixed insertion editing is a method used to insert fixed characters into a numeric edited item.
cs 
+ 
- 
CR 
DB
Floating insertion Floating insertion editing is used for formatting numeric data items, mainly when dealing with currency values.
cs 
+ 
-

ZERO suppression and replacement editing -

Type Description PIC Symbols
Zero suppression and replacement with spaces Zero Suppression involves omitting leading zeros from a number, and replacement editing involves replacing leading zeros with a space.
Z 
*
Zero suppression and replacement with asterisks Zero Suppression involves omitting leading zeros from a number, and replacement editing involves replacing leading zeros with an asterisk (*).
Z 
* 
+ 
- 
cs

Examples -


Below are the total PICTURE clause symbol list -

Symbol Declaration Meaning
B Space insertion character that represents numeric-edited and alphanumeric-edited character. For example -
Input PICTURE Clause Output
150682 PIC 99B99B99 15 06 82
15061982 PIC XXBXXBXXXX 15 06 1982
P Decimal scaling position but not counted in size of variable. For example -
Input PICTURE Clause Output
77 PIC 99P 77
77 PIC P99 77
Z Zero suppression character. For example -
Input PICTURE Clause Output
123 PIC ZZZZZ. 123
000123 PIC ZZZZZZ. 123
0 Zero insertion character. For example -
Input PICTURE Clause Output
1234 PIC 990099. 120034
1234 PIC 999900. 123400
/ Slash insertion character. For example -
Input PICTURE Clause Output
150682 PIC 99/99/99. 15/06/82
, Comma insertion character. For example -
Input PICTURE Clause Output
123456 PIC 999,999. 123,456
12345 PIC zzz,999. 12345
. Decimal point or period editing control character. For example -
Input PICTURE Clause Output
1234.56 PIC 9999.99. 1234.56
1234.56 PIC 999.99. 234.56
1234.56 PIC 9999.9. 1234.5
+ Plus sign insertion editing control character. For example -
Input PICTURE Clause Output
+12345 PIC +9(5). +12345
-123 PIC +9(3). -123
-123 PIC 9(3)+. 123-
- Minus sign editing control character. For example -
Input PICTURE Clause Output
-123 PIC -9(3). -123
+123 PIC +9(3). 123
-123 PIC 9(3)-. 123-
CR Credit editing control character. For example -
Input PICTURE Clause Output
+123 PIC 9(3)CR. 123
-123 PIC 9(3)CR. 123CR
DB Debit editing control character or Check protect insertion character.For example -
Input PICTURE Clause Output
+123 PIC 9(3)DB. 123
-123 PIC 9(3)DB. 123DB
$ Currency symbol insertion character. $ is the default. For example -
Input PICTURE Clause Output
000 PIC $,$$9.99. 0.00
90 PIC $$9.00. $90.00
12345 PIC $$,$$9. $2,345