• PICTURE clause specifies the characteristics and editing requirements of the variable. i.e., variable type, length etc.
  • PICTURE clause only coded with elementary variables and individual variables.
  • PICTURE clause should not code with an 88-level number, USAGE COMP-1, and USAGE COMP-2.

Syntax -

PICTURE Clause Syntax
 level-number variable-name 
				[PIC/PICTURE data-type-character(variable-length)
				[VALUE literal]]
				 
					OR 

 level-number variable-name 
				[PIC/PICTURE picture-symbol(variable-length)
				[VALUE literal]]
				 
					OR 
					
 level-number variable-name 
				[PIC/PICTURE character-string 
				[VALUE literal]]				 
				 
					OR 
					
 level-number variable-name 
				[PIC/PICTURE picture-clause-editing 
				[VALUE literal]]

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. In the above example, it is 01.
  • variable-name - Specifies the name of the variable. In the above example, it is WS-VAR.
  • data-type-character/picture-symbol - Specifies the type of the variable. In the above example, it is A (Alphabetic).
  • variable-length - Specifies the variable length to store the data. In the above example, it is 05 (variable length is 5).
  • literal - Specifies the literal character string. In the above example, it is HELLO.

PICTURE or PIC -
  • PIC is a short form for PICTURE and has the same meaning.
  • The PICTURE clause should code with every elementary variable to specify its type along with length.
  • The PICTURE clause should not specify for below -
    • Index data items
    • The RENAMES clause
    • Internal floating-point data items
character-string -
  • The character-string defines as a combination of picture-symbol and variable-length.
  • Character-string can contain a maximum of 50 characters.

PICTURE Symbol -

  • PICTURE symbol is the letter used to specify the type of the variable during the declaration.
  • PICTURE character-strings are delimited only by separator space, separator comma, separator semicolon, or separator period.
  • PICTURE symbols lowercase letters are equivalent to their uppercase representations.
  • 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 data item/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 -

PICTURE symbol for editing used to represent the data in the user expected format. PICTURE clause editing has two types to represent the data in user-specified format -

Type PIC Symbols
Insertion editing
Type PIC Symbols
Simple insertion
B
0
/
  (Space)
Special insertion
. (Dot)
Fixed insertion
cs 
+ 
- 
CR 
DB
Floating insertion
cs 
+ 
-
ZERO suppression and replacement editing
Type PIC Symbols
Zero suppression and replacement with spaces
Z 
*
Zero suppression and replacement with asterisks
Z 
* 
+ 
- 
cs 

Examples -

Below are the total PICTURE clause symbol list -

Symbol Declaration Meaning
B Space insertion character.
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 data item.
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

Data Type Vs Editing Type -

The type of editing allowed depends on the variable data type. The following table shows the valid type of editing with the corresponding category –

Data Type Type of editing Insertion symbol
Alphabetic None None
Numeric None None
Numeric-edited Simple insertion
Special insertion
Fixed insertion
Floating insertion
Zero suppression
Replacement
B 0 / ,
.
cs + - CR DB
cs + -
Z *
Z * + - cs
Alphanumeric None None
Alphanumeric-edited Simple insertion B 0 /
External floating-point Special insertion .