• Rajesh A R

F1 for Mainframe

F1 for Mainframe

Tag Archives: table

DB2 SQL Query to read COMP (COBOL) data stored in CHAR column

20 Tuesday Dec 2016

Posted by rajeshar in COBOL, DB2

≈ Leave a comment

Tags

char, COBOL, COLUMN, COMP, DB2, hex, HISTORY, numeric, read, SUBSTR, table

Sometimes because of business needs, whenever an update is performed to a primary table, changes are recorded in a HISTORY table. At this point, to save space, multiple fields will be placed in a single comments column. These COBOL fields can be COMP values as well. Once these COMP values are stored in the DB2 CHAR column, it becomes difficult if you want to know the value of that field from the HISTORY table. But below is a query that helps you finding the numeric value of the COMP field.

10 COMP_NUMBER    PIC S9(9) USAGE COMP.

Above field is stored in first 4 bytes of the column COMMENT_CLM in the table SCHEMA.DB2_TABLE.

Query to get the numeric value of the COMP field is below.

SELECT
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),1,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,7) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),2,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,6) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),3,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,5) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),4,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,4) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),5,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,3) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),6,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,2) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),7,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,1) +
(CASE SUBSTR(CHAR(HEX(SUBSTR(COMMENT_CLM,1,4))),8,1)
WHEN ‘A’ THEN 10
WHEN ‘B’ THEN 11
WHEN ‘C’ THEN 12
WHEN ‘D’ THEN 13
WHEN ‘E’ THEN 14
WHEN ‘F’ THEN 15
WHEN ‘0’ THEN 0
WHEN ‘1’ THEN 1
WHEN ‘2’ THEN 2
WHEN ‘3’ THEN 3
WHEN ‘4’ THEN 4
WHEN ‘5’ THEN 5
WHEN ‘6’ THEN 6
WHEN ‘7’ THEN 7
WHEN ‘8’ THEN 8
WHEN ‘9’ THEN 9
END) * POWER(16,0) AS COMP_NUMBER
FROM SCHEMA.DB2_TABLE
WHERE CONDITION

——————————————————————————————————–

In United States, If you would like to Earn Free Stocks, Credit card Points and Bank account Bonuses, Please visit My Finance Blog

——————————————————————————————————–

You may also like to look at:

Working on Mainframes – Is Change to a different technology necessary
Important SQL CODES and ABEND CODES
SORT JOIN – TO JOIN TWO FILES BASED ON A KEY
KNOW YOUR MAINFRAME
REXX – INITIAL SETUP
HOW TO SUBMIT A BATCH JOB FROM THE CICS PROGRAM
CICS – EXEC interface block – EIBRESP Values
CICS – EXEC interface block Fields
Flow of control between COBOL programs, run units, and CICS
CICS INTERVIEW QUESTIONS
CICS TIPS
COBOL – COPY and INCLUDE statements
COBOL – PERFORMANCE IMPROVEMENT
COBOL – SIGN STORED IN COMP, COMP-3 AND DISPLAY FORMATS
SHORTEST COBOL PROGRAM
RESTART LOGIC IN COBOL DB2 Program
GOBACK – EXIT PROGRAM – STOP RUN
Continuation lines in COBOL
Computational items – COMP, COMP 1 , COMP 2, COMP 3
COBOL program format
cobol indicator area column-7 and area a and area b
COBOL INTERVIEW QUESTIONS
COBOL TIPS
COBOL COMPILER OPTIONS
The IDENTIFICATION DIVISION
Advertisement

Rate this:

← Older posts
Newer posts →

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Archives

  • November 2020
  • July 2020
  • February 2020
  • January 2020
  • September 2019
  • August 2019
  • October 2018
  • April 2018
  • March 2018
  • December 2017
  • October 2017
  • August 2017
  • July 2017
  • June 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • May 2016
  • March 2016
  • February 2016
  • January 2016
  • May 2015
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • January 2013
  • December 2012
  • November 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • April 2011
  • March 2011
  • August 2009
  • June 2009
  • April 2009

Categories

  • Azure
  • CA7
  • CICS
  • COBOL
    • Keywords
  • DB2
  • EASYTRIEVE
  • FILEAID
  • FILEMAXX
  • IMS
  • ISPF
  • JCL
  • KNOW YOUR MAINFRAME
  • Mainframe Migration
  • MAINFRAMES
  • Others
  • REXX
  • SDSF
  • SORT
  • Training
  • TSQL
  • VSAM

Meta

  • Register
  • Log in

Blog at WordPress.com.

  • Follow Following
    • F1 for Mainframe
    • Join 88 other followers
    • Already have a WordPress.com account? Log in now.
    • F1 for Mainframe
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar