The INTO keyword represents a fundamental data destination specification mechanism within COBOL programming environments, providing precise control over result storage for arithmetic computations, string manipulations, and data transformation operations. This keyword embodies the principles of explicit data flow by supporting clear destination designation, flexible result storage options, and comprehensive data movement control while maintaining type safety, ensuring data integrity, and facilitating efficient program execution across enterprise applications requiring sophisticated data processing, reliable result storage, and comprehensive data manipulation with predictable destination handling and optimized performance characteristics.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354*> COMPUTE with INTO COMPUTE result-field = expression *> DIVIDE with INTO (quotient and remainder) DIVIDE dividend BY divisor GIVING quotient REMAINDER remainder *> STRING with INTO STRING field1 field2 DELIMITED BY SIZE INTO result-field *> UNSTRING with INTO (multiple destinations) UNSTRING source-field DELIMITED BY delimiter INTO field1 field2 field3 *> Function results with INTO MOVE FUNCTION LENGTH(input-field) TO length-field MOVE FUNCTION UPPER-CASE(input-field) TO output-field *> Basic examples 01 WS-NUMBERS. 05 WS-NUM1 PIC 9(3) VALUE 100. 05 WS-NUM2 PIC 9(3) VALUE 25. 05 WS-RESULT PIC 9(5). 05 WS-QUOTIENT PIC 9(3). 05 WS-REMAINDER PIC 9(2). 01 WS-STRINGS. 05 WS-FIRST-NAME PIC X(15) VALUE "JOHN". 05 WS-LAST-NAME PIC X(20) VALUE "SMITH". 05 WS-FULL-NAME PIC X(40). 05 WS-INPUT-DATA PIC X(50) VALUE "A,B,C,D,E". 05 WS-FIELD1 PIC X(10). 05 WS-FIELD2 PIC X(10). 05 WS-FIELD3 PIC X(10). PROCEDURE DIVISION. *> Arithmetic operations with INTO COMPUTE WS-RESULT = WS-NUM1 + WS-NUM2 *> Result stored in WS-RESULT DIVIDE WS-NUM1 BY WS-NUM2 GIVING WS-QUOTIENT REMAINDER WS-REMAINDER *> Quotient in WS-QUOTIENT, remainder in WS-REMAINDER *> String operations with INTO STRING WS-FIRST-NAME " " WS-LAST-NAME DELIMITED BY SIZE INTO WS-FULL-NAME *> Concatenated result in WS-FULL-NAME *> String parsing with multiple INTO UNSTRING WS-INPUT-DATA DELIMITED BY "," INTO WS-FIELD1, WS-FIELD2, WS-FIELD3 *> Each field gets corresponding part
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432IDENTIFICATION DIVISION. PROGRAM-ID. INTO-KEYWORD-DEMO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-ARITHMETIC-FIELDS. 05 WS-SALES-AMOUNT PIC 9(8)V99 VALUE 15000.50. 05 WS-TAX-RATE PIC 9V9999 VALUE 0.0825. 05 WS-DISCOUNT-RATE PIC 9V99 VALUE 0.10. 05 WS-TAX-AMOUNT PIC 9(6)V99. 05 WS-DISCOUNT-AMOUNT PIC 9(6)V99. 05 WS-NET-AMOUNT PIC 9(8)V99. 05 WS-COMMISSION-RATE PIC 9V9999 VALUE 0.0250. 05 WS-COMMISSION PIC 9(6)V99. 01 WS-DIVISION-OPERATIONS. 05 WS-TOTAL-HOURS PIC 9(4) VALUE 2080. 05 WS-WEEKS-PER-YEAR PIC 9(2) VALUE 52. 05 WS-HOURS-PER-WEEK PIC 9(2). 05 WS-REMAINDER-HOURS PIC 9(2). 05 WS-ANNUAL-SALARY PIC 9(7) VALUE 75000. 05 WS-HOURLY-RATE PIC 9(3)V99. 05 WS-RATE-REMAINDER PIC 9(2). 01 WS-STRING-OPERATIONS. 05 WS-CUSTOMER-DATA. 10 WS-CUST-ID PIC X(8) VALUE "CUST0001". 10 WS-CUST-NAME PIC X(30) VALUE "JOHN P. SMITH". 10 WS-CUST-TYPE PIC X(10) VALUE "PREMIUM". 10 WS-CUST-REGION PIC X(15) VALUE "NORTHEAST". 05 WS-FORMATTED-RECORD PIC X(100). 05 WS-DISPLAY-LINE PIC X(80). 01 WS-PARSING-FIELDS. 05 WS-CSV-INPUT PIC X(100) VALUE "Smith,John,Manager,Sales,75000,2020-01-15". 05 WS-PIPE-INPUT PIC X(100) VALUE "PROD001|Widget A|Electronics|49.99|100". 05 WS-EMPLOYEE-RECORD. 10 WS-EMP-LASTNAME PIC X(20). 10 WS-EMP-FIRSTNAME PIC X(15). 10 WS-EMP-TITLE PIC X(20). 10 WS-EMP-DEPARTMENT PIC X(15). 10 WS-EMP-SALARY PIC X(10). 10 WS-EMP-HIRE-DATE PIC X(10). 05 WS-PRODUCT-RECORD. 10 WS-PROD-CODE PIC X(10). 10 WS-PROD-NAME PIC X(25). 10 WS-PROD-CATEGORY PIC X(15). 10 WS-PROD-PRICE PIC X(10). 10 WS-PROD-QUANTITY PIC X(10). 01 WS-FUNCTION-RESULTS. 05 WS-INPUT-TEXT PIC X(50) VALUE "Hello World 123". 05 WS-UPPER-TEXT PIC X(50). 05 WS-TEXT-LENGTH PIC 9(3). 05 WS-CURRENT-DATE PIC 9(8). 05 WS-CURRENT-TIME PIC 9(8). 05 WS-FORMATTED-DATE PIC X(10). 05 WS-NUMERIC-VALUE PIC X(10) VALUE "12345". 05 WS-CONVERTED-NUM PIC 9(5). 01 WS-COMPLEX-CALCULATIONS. 05 WS-INVESTMENT-AMOUNT PIC 9(8)V99 VALUE 100000.00. 05 WS-INTEREST-RATE PIC 9V9999 VALUE 0.0450. 05 WS-YEARS PIC 9(2) VALUE 5. 05 WS-COMPOUND-INTEREST PIC 9(8)V99. 05 WS-MONTHLY-PAYMENT PIC 9(6)V99. 05 WS-PRINCIPAL PIC 9(8)V99. 05 WS-INTEREST-PORTION PIC 9(6)V99. 01 WS-COUNTERS-AND-FLAGS. 05 WS-COUNTER PIC 9(3) VALUE 0. 05 WS-PROCESSING-FLAG PIC X VALUE 'N'. 88 PROCESSING-DONE VALUE 'Y'. 05 WS-ERROR-COUNT PIC 9(3) VALUE 0. PROCEDURE DIVISION. MAIN-PROCESSING. PERFORM DEMONSTRATE-ARITHMETIC-INTO PERFORM DEMONSTRATE-DIVISION-INTO PERFORM DEMONSTRATE-STRING-INTO PERFORM DEMONSTRATE-UNSTRING-INTO PERFORM DEMONSTRATE-FUNCTION-INTO PERFORM DEMONSTRATE-COMPLEX-CALCULATIONS PERFORM DEMONSTRATE-ADVANCED-TECHNIQUES STOP RUN. DEMONSTRATE-ARITHMETIC-INTO. DISPLAY "=== ARITHMETIC OPERATIONS WITH INTO ===" *> Calculate tax amount COMPUTE WS-TAX-AMOUNT = WS-SALES-AMOUNT * WS-TAX-RATE DISPLAY "Sales Amount: $" WS-SALES-AMOUNT DISPLAY "Tax Rate: " WS-TAX-RATE DISPLAY "Tax Amount: $" WS-TAX-AMOUNT *> Calculate discount COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * WS-DISCOUNT-RATE DISPLAY "Discount Amount: $" WS-DISCOUNT-AMOUNT *> Calculate net amount (sales + tax - discount) COMPUTE WS-NET-AMOUNT = WS-SALES-AMOUNT + WS-TAX-AMOUNT - WS-DISCOUNT-AMOUNT DISPLAY "Net Amount: $" WS-NET-AMOUNT *> Calculate commission on net amount COMPUTE WS-COMMISSION = WS-NET-AMOUNT * WS-COMMISSION-RATE DISPLAY "Commission: $" WS-COMMISSION DISPLAY SPACES. DEMONSTRATE-DIVISION-INTO. DISPLAY "=== DIVISION OPERATIONS WITH INTO ===" *> Calculate hours per week with remainder DIVIDE WS-TOTAL-HOURS BY WS-WEEKS-PER-YEAR GIVING WS-HOURS-PER-WEEK REMAINDER WS-REMAINDER-HOURS DISPLAY "Total Annual Hours: " WS-TOTAL-HOURS DISPLAY "Weeks per Year: " WS-WEEKS-PER-YEAR DISPLAY "Hours per Week: " WS-HOURS-PER-WEEK DISPLAY "Remainder Hours: " WS-REMAINDER-HOURS *> Calculate hourly rate from annual salary DIVIDE WS-ANNUAL-SALARY BY WS-TOTAL-HOURS GIVING WS-HOURLY-RATE REMAINDER WS-RATE-REMAINDER DISPLAY "Annual Salary: $" WS-ANNUAL-SALARY DISPLAY "Hourly Rate: $" WS-HOURLY-RATE DISPLAY "Rate Remainder: " WS-RATE-REMAINDER DISPLAY SPACES. DEMONSTRATE-STRING-INTO. DISPLAY "=== STRING OPERATIONS WITH INTO ===" *> Create formatted customer record STRING "Customer: " WS-CUST-ID " | " WS-CUST-NAME " | Type: " WS-CUST-TYPE " | Region: " WS-CUST-REGION DELIMITED BY SIZE INTO WS-FORMATTED-RECORD DISPLAY "Formatted Record:" DISPLAY WS-FORMATTED-RECORD *> Create display line with alignment STRING "ID: " WS-CUST-ID SPACE "Name: " WS-CUST-NAME SPACE "(" WS-CUST-TYPE ")" DELIMITED BY SIZE INTO WS-DISPLAY-LINE DISPLAY "Display Line:" DISPLAY WS-DISPLAY-LINE *> Create report header STRING "Customer Report - " WS-CUST-REGION " Region" DELIMITED BY SIZE INTO WS-DISPLAY-LINE DISPLAY "Report Header:" DISPLAY WS-DISPLAY-LINE DISPLAY SPACES. DEMONSTRATE-UNSTRING-INTO. DISPLAY "=== UNSTRING OPERATIONS WITH INTO ===" *> Parse CSV employee data DISPLAY "Parsing CSV: " WS-CSV-INPUT UNSTRING WS-CSV-INPUT DELIMITED BY "," INTO WS-EMP-LASTNAME, WS-EMP-FIRSTNAME, WS-EMP-TITLE, WS-EMP-DEPARTMENT, WS-EMP-SALARY, WS-EMP-HIRE-DATE DISPLAY "Employee Record:" DISPLAY " Last Name: " WS-EMP-LASTNAME DISPLAY " First Name: " WS-EMP-FIRSTNAME DISPLAY " Title: " WS-EMP-TITLE DISPLAY " Department: " WS-EMP-DEPARTMENT DISPLAY " Salary: $" WS-EMP-SALARY DISPLAY " Hire Date: " WS-EMP-HIRE-DATE *> Parse pipe-delimited product data DISPLAY "Parsing Pipe Data: " WS-PIPE-INPUT UNSTRING WS-PIPE-INPUT DELIMITED BY "|" INTO WS-PROD-CODE, WS-PROD-NAME, WS-PROD-CATEGORY, WS-PROD-PRICE, WS-PROD-QUANTITY DISPLAY "Product Record:" DISPLAY " Code: " WS-PROD-CODE DISPLAY " Name: " WS-PROD-NAME DISPLAY " Category: " WS-PROD-CATEGORY DISPLAY " Price: $" WS-PROD-PRICE DISPLAY " Quantity: " WS-PROD-QUANTITY DISPLAY SPACES. DEMONSTRATE-FUNCTION-INTO. DISPLAY "=== FUNCTION RESULTS WITH INTO ===" *> Get text length MOVE FUNCTION LENGTH(WS-INPUT-TEXT) TO WS-TEXT-LENGTH DISPLAY "Input Text: '" WS-INPUT-TEXT "'" DISPLAY "Text Length: " WS-TEXT-LENGTH *> Convert to uppercase MOVE FUNCTION UPPER-CASE(WS-INPUT-TEXT) TO WS-UPPER-TEXT DISPLAY "Uppercase: '" WS-UPPER-TEXT "'" *> Get current date and time MOVE FUNCTION CURRENT-DATE(1:8) TO WS-CURRENT-DATE MOVE FUNCTION CURRENT-DATE(9:8) TO WS-CURRENT-TIME DISPLAY "Current Date: " WS-CURRENT-DATE DISPLAY "Current Time: " WS-CURRENT-TIME *> Format date for display STRING WS-CURRENT-DATE(5:2) "/" WS-CURRENT-DATE(7:2) "/" WS-CURRENT-DATE(1:4) DELIMITED BY SIZE INTO WS-FORMATTED-DATE DISPLAY "Formatted Date: " WS-FORMATTED-DATE *> Convert string to numeric MOVE FUNCTION NUMVAL(WS-NUMERIC-VALUE) TO WS-CONVERTED-NUM DISPLAY "String Value: '" WS-NUMERIC-VALUE "'" DISPLAY "Numeric Value: " WS-CONVERTED-NUM DISPLAY SPACES. DEMONSTRATE-COMPLEX-CALCULATIONS. DISPLAY "=== COMPLEX CALCULATIONS WITH INTO ===" *> Calculate compound interest COMPUTE WS-COMPOUND-INTEREST = WS-INVESTMENT-AMOUNT * ((1 + WS-INTEREST-RATE) ** WS-YEARS) - WS-INVESTMENT-AMOUNT DISPLAY "Investment Calculation:" DISPLAY " Principal: $" WS-INVESTMENT-AMOUNT DISPLAY " Rate: " WS-INTEREST-RATE DISPLAY " Years: " WS-YEARS DISPLAY " Compound Interest: $" WS-COMPOUND-INTEREST *> Calculate monthly payment for loan COMPUTE WS-MONTHLY-PAYMENT = (WS-INVESTMENT-AMOUNT * (WS-INTEREST-RATE / 12)) / (1 - ((1 + (WS-INTEREST-RATE / 12)) ** (- WS-YEARS * 12))) DISPLAY "Loan Payment Calculation:" DISPLAY " Loan Amount: $" WS-INVESTMENT-AMOUNT DISPLAY " Monthly Payment: $" WS-MONTHLY-PAYMENT *> Calculate first month interest and principal COMPUTE WS-INTEREST-PORTION = WS-INVESTMENT-AMOUNT * (WS-INTEREST-RATE / 12) COMPUTE WS-PRINCIPAL = WS-MONTHLY-PAYMENT - WS-INTEREST-PORTION DISPLAY "First Payment Breakdown:" DISPLAY " Interest Portion: $" WS-INTEREST-PORTION DISPLAY " Principal Portion: $" WS-PRINCIPAL DISPLAY SPACES. DEMONSTRATE-ADVANCED-TECHNIQUES. DISPLAY "=== ADVANCED INTO TECHNIQUES ===" PERFORM CONDITIONAL-INTO-OPERATIONS PERFORM LOOP-WITH-INTO-OPERATIONS PERFORM ERROR-HANDLING-WITH-INTO DISPLAY "Advanced techniques demonstration completed" DISPLAY SPACES. CONDITIONAL-INTO-OPERATIONS. DISPLAY "Conditional INTO Operations:" *> Conditional calculation based on customer type IF WS-CUST-TYPE = "PREMIUM" COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * 0.15 DISPLAY " Premium discount applied: 15%" ELSE IF WS-CUST-TYPE = "STANDARD" COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * 0.10 DISPLAY " Standard discount applied: 10%" ELSE COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * 0.05 DISPLAY " Basic discount applied: 5%" END-IF END-IF DISPLAY " Calculated Discount: $" WS-DISCOUNT-AMOUNT. LOOP-WITH-INTO-OPERATIONS. DISPLAY "Loop Operations with INTO:" *> Calculate running totals MOVE 0 TO WS-NET-AMOUNT PERFORM VARYING WS-COUNTER FROM 1 BY 1 UNTIL WS-COUNTER > 5 COMPUTE WS-TAX-AMOUNT = WS-COUNTER * 100 ADD WS-TAX-AMOUNT TO WS-NET-AMOUNT DISPLAY " Iteration " WS-COUNTER ": Added $" WS-TAX-AMOUNT " Total: $" WS-NET-AMOUNT END-PERFORM. ERROR-HANDLING-WITH-INTO. DISPLAY "Error Handling with INTO:" *> Safe division with error checking IF WS-WEEKS-PER-YEAR > 0 DIVIDE WS-TOTAL-HOURS BY WS-WEEKS-PER-YEAR GIVING WS-HOURS-PER-WEEK REMAINDER WS-REMAINDER-HOURS DISPLAY " Division successful: " WS-HOURS-PER-WEEK " hours/week" ELSE MOVE 0 TO WS-HOURS-PER-WEEK MOVE 0 TO WS-REMAINDER-HOURS ADD 1 TO WS-ERROR-COUNT DISPLAY " Error: Division by zero prevented" END-IF DISPLAY " Error Count: " WS-ERROR-COUNT. *> Advanced INTO patterns FINANCIAL-CALCULATIONS. DISPLAY "=== FINANCIAL CALCULATIONS ===" *> Present Value calculation COMPUTE WS-COMPOUND-INTEREST = WS-INVESTMENT-AMOUNT / ((1 + WS-INTEREST-RATE) ** WS-YEARS) DISPLAY "Present Value: $" WS-COMPOUND-INTEREST *> Future Value with compound interest COMPUTE WS-NET-AMOUNT = WS-INVESTMENT-AMOUNT * ((1 + WS-INTEREST-RATE) ** WS-YEARS) DISPLAY "Future Value: $" WS-NET-AMOUNT. DATA-TRANSFORMATION. DISPLAY "=== DATA TRANSFORMATION ===" *> Transform customer data format STRING WS-CUST-NAME ", " WS-CUST-TYPE " Customer, " WS-CUST-REGION DELIMITED BY SIZE INTO WS-FORMATTED-RECORD DISPLAY "Transformed Format: " WS-FORMATTED-RECORD *> Extract and reformat date components UNSTRING WS-EMP-HIRE-DATE DELIMITED BY "-" INTO WS-FIELD1, WS-FIELD2, WS-FIELD3 STRING WS-FIELD2 "/" WS-FIELD3 "/" WS-FIELD1 DELIMITED BY SIZE INTO WS-FORMATTED-DATE DISPLAY "Original Date: " WS-EMP-HIRE-DATE DISPLAY "Reformatted: " WS-FORMATTED-DATE. PERFORMANCE-OPTIMIZATION. DISPLAY "=== PERFORMANCE OPTIMIZATION ===" *> Efficient bulk calculations COMPUTE WS-TAX-AMOUNT = WS-SALES-AMOUNT * WS-TAX-RATE COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * WS-DISCOUNT-RATE COMPUTE WS-COMMISSION = (WS-SALES-AMOUNT + WS-TAX-AMOUNT - WS-DISCOUNT-AMOUNT) * WS-COMMISSION-RATE COMPUTE WS-NET-AMOUNT = WS-SALES-AMOUNT + WS-TAX-AMOUNT - WS-DISCOUNT-AMOUNT - WS-COMMISSION DISPLAY "Optimized calculation results:" DISPLAY " Tax: $" WS-TAX-AMOUNT DISPLAY " Discount: $" WS-DISCOUNT-AMOUNT DISPLAY " Commission: $" WS-COMMISSION DISPLAY " Net Amount: $" WS-NET-AMOUNT. VALIDATION-AND-CONVERSION. DISPLAY "=== VALIDATION AND CONVERSION ===" *> Validate and convert data IF WS-NUMERIC-VALUE IS NUMERIC MOVE FUNCTION NUMVAL(WS-NUMERIC-VALUE) TO WS-CONVERTED-NUM DISPLAY "Valid number converted: " WS-CONVERTED-NUM ELSE MOVE 0 TO WS-CONVERTED-NUM DISPLAY "Invalid number, defaulted to 0" END-IF *> Safe string operations IF WS-INPUT-TEXT NOT = SPACES MOVE FUNCTION UPPER-CASE(WS-INPUT-TEXT) TO WS-UPPER-TEXT MOVE FUNCTION LENGTH(WS-INPUT-TEXT) TO WS-TEXT-LENGTH DISPLAY "Processed text: " WS-UPPER-TEXT DISPLAY "Length: " WS-TEXT-LENGTH ELSE MOVE SPACES TO WS-UPPER-TEXT MOVE 0 TO WS-TEXT-LENGTH DISPLAY "Empty input handled" END-IF. BUSINESS-RULE-CALCULATIONS. DISPLAY "=== BUSINESS RULE CALCULATIONS ===" *> Complex business logic with INTO EVALUATE WS-CUST-TYPE WHEN "PREMIUM" COMPUTE WS-DISCOUNT-RATE = 0.20 WHEN "GOLD" COMPUTE WS-DISCOUNT-RATE = 0.15 WHEN "SILVER" COMPUTE WS-DISCOUNT-RATE = 0.10 WHEN OTHER COMPUTE WS-DISCOUNT-RATE = 0.05 END-EVALUATE COMPUTE WS-DISCOUNT-AMOUNT = WS-SALES-AMOUNT * WS-DISCOUNT-RATE COMPUTE WS-FINAL-AMOUNT = WS-SALES-AMOUNT - WS-DISCOUNT-AMOUNT DISPLAY "Business Rule Applied:" DISPLAY " Customer Type: " WS-CUST-TYPE DISPLAY " Discount Rate: " WS-DISCOUNT-RATE DISPLAY " Discount Amount: $" WS-DISCOUNT-AMOUNT DISPLAY " Final Amount: $" WS-FINAL-AMOUNT.
123456789101112131415161701 WS-FINANCIAL-DATA. 05 WS-PRINCIPAL PIC 9(7)V99 VALUE 50000.00. 05 WS-RATE PIC 9V9999 VALUE 0.0525. 05 WS-YEARS PIC 9(2) VALUE 10. 05 WS-INTEREST PIC 9(8)V99. 05 WS-TOTAL PIC 9(8)V99. PROCEDURE DIVISION. *> Calculate compound interest COMPUTE WS-INTEREST = WS-PRINCIPAL * ((1 + WS-RATE) ** WS-YEARS) - WS-PRINCIPAL COMPUTE WS-TOTAL = WS-PRINCIPAL + WS-INTEREST DISPLAY "Principal: $" WS-PRINCIPAL DISPLAY "Interest: $" WS-INTEREST DISPLAY "Total: $" WS-TOTAL.
12345678910111213141516171801 WS-INPUT-RECORD PIC X(100) VALUE "John,Doe,Manager,Sales,75000,2020-01-15". 01 WS-EMPLOYEE-DATA. 05 WS-FIRST-NAME PIC X(15). 05 WS-LAST-NAME PIC X(15). 05 WS-TITLE PIC X(20). 05 WS-DEPARTMENT PIC X(15). 05 WS-SALARY PIC X(10). 05 WS-HIRE-DATE PIC X(10). PROCEDURE DIVISION. UNSTRING WS-INPUT-RECORD DELIMITED BY "," INTO WS-FIRST-NAME, WS-LAST-NAME, WS-TITLE, WS-DEPARTMENT, WS-SALARY, WS-HIRE-DATE.
What is the primary purpose of the INTO keyword?
Answer: INTO specifies the destination where results from operations (arithmetic, string, functions) should be stored. It provides explicit control over where computed or processed data is placed.
Which operations can use multiple INTO clauses?
Answer: UNSTRING can use multiple INTO clauses to store parsed components in different fields. DIVIDE can use GIVING and REMAINDER to store quotient and remainder in separate fields.
What should you consider when choosing destination fields for INTO operations?
Answer: Consider field size to prevent truncation, data type compatibility for proper conversion, decimal places for numeric results, and potential for overflow in calculations.
123456COMPUTE WS-TOTAL = WS-SUBTOTAL + WS-TAX - WS-DISCOUNT DIVIDE WS-TOTAL BY WS-QUANTITY GIVING WS-UNIT-PRICE REMAINDER WS-REMAINDER
123456STRING WS-FIRST " " WS-LAST DELIMITED BY SIZE INTO WS-FULL-NAME UNSTRING WS-CSV-DATA DELIMITED BY "," INTO WS-FIELD1, WS-FIELD2, WS-FIELD3