DSNTEJ1U

This JCL creates a database, tablespace, and table with a UNICODE encoding scheme.

Start of change
//********************************************************************* 
//*  Name = DSNTEJ1U                                                    
//*                                                                     
//*  Descriptive Name = DB2 Sample Application - UNICODE                
//*                     Phase 1 (local site only)                       
//*                                                                     
//*                                                                     
//*    Licensed Materials - Property of IBM                             
//*    5698-DB2                                                         
//*    COPYRIGHT IBM CORP 1982, 2022
//*                                                                     
//*    STATUS = Version 13                                              
//*                                                                     
//*  Function = This JCL creates a database, tablespace, and table      
//*             with a UNICODE encoding scheme.  The table is then      
//*             populated from source data in an EBCDIC external        
//*             format.  Finally, the contents of the table are         
//*             displayed in EBCDIC external and hex formats.           
//*                                                                     
//*  Restrictions =                                                     
//*             Do not run this job unless your system has the          
//*             prerequisite operating system level for DB2 for OS/390  
//*             Version 7 Unicode support, as documented in the DB2 for 
//*             OS/390 Version 7 Program Directory, the section         
//*             entitled "Function-Dependent Program Requirements".     
//*                                                                     
//*  Notice =                                                           
//*    This sample job uses DB2 Utilities. Some utility functions are   
//*    elements of separately orderable products.  Successful use of    
//*    a particular sample job may be dependent upon the optional       
//*    product being licensed and installed in your environment.        
//*                                                                     
//*  Pseudocode =                                                       
//*    PH01US01 Step     Drop objects created by prior runs of this job 
//*    PH01US02 Step     Create sample unicode objects                  
//*    PH01US03 Step     Load the sample unicode table                  
//*    PH01US04 Step     Display the sample UNICODE data in source      
//*                      and hex formats                                
//*                                                                     
//*  Change Activity =                                                  
//*    10/20/2012 Create ALIASes instead of SYNONYMs     N0102 / 163503 
//*    11/07/2012 Add SET CURRENT SQLID           dn1651_inst1 / dn1651 
//*    05/17/2013 FIX COPYRIGHT STATEMENT                 49779_077_724 
//*    02/15/2016 Long data set names                           PI42601 
//*    12/01/2021 Remove tolerance for deprecated TSs   e6837  / s15746
//*                                                                     
//********************************************************************* 
//*                                                                     
//JOBLIB  DD  DSN=DSN!!0.SDSNEXIT,DISP=SHR                              
//        DD  DSN=DSN!!0.SDSNLOAD,DISP=SHR                              
//        DD  DSN=CEE.V!R!M!.SCEERUN,DISP=SHR                           
//*                                                                     
//* Step  1: Drop objects from any previous run of this job             
//*                                                                     
//PH01US01 EXEC PGM=IKJEFT01,DYNAMNBR=20                                
//SYSTSPRT DD  SYSOUT=*                                                 
//SYSTSIN  DD  *                                                        
 DSN SYSTEM(DSN)                                                        
 RUN PROGRAM(DSNTIAD) -                                                 
     PLAN(DSNTIA!!) -                                                   
     LIB('DSN!!0.RUNLIB.LOAD') -                                        
     PARM('RC0')                                                        
//SYSPRINT DD  SYSOUT=*                                                 
//SYSUDUMP DD  SYSOUT=*                                                 
//SYSIN    DD  *                                                        
  SET CURRENT SQLID = 'SYSADM';                                         
                                                                        
  DROP ALIAS    DEMO_UNICODE;                                           
  DROP DATABASE DSN8D!!E;                                               
                                                                        
//*                                                                     
//* Step  2: Create sammple UNICODE objects                             
//*                                                                     
//PH01US02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)                    
//SYSTSPRT DD  SYSOUT=*                                                 
//SYSTSIN  DD  *                                                        
 DSN SYSTEM(DSN)                                                        
 RUN PROGRAM(DSNTIAD) -                                                 
     PLAN(DSNTIA!!) -                                                   
     LIB('DSN!!0.RUNLIB.LOAD')                                          
//SYSPRINT DD  SYSOUT=*                                                 
//SYSUDUMP DD  SYSOUT=*                                                 
//SYSIN    DD  *                                                        
      SET CURRENT SQLID = 'SYSADM';                                     
                                                                        
      CREATE DATABASE DSN8D!!E                                          
             STOGROUP DSN8G!!0                                          
             BUFFERPOOL BP0                                             
             CCSID UNICODE;                                             
                                                                        
      CREATE TABLESPACE DSN8S!!U                                        
          IN DSN8D!!E                                                   
       USING STOGROUP DSN8G!!0                                          
       ERASE NO                                                         
    LOCKSIZE PAGE                                                       
     LOCKMAX SYSTEM                                                     
  BUFFERPOOL BP0                                                        
       CLOSE NO                                                         
       CCSID UNICODE                                                    
  MAXPARTITIONS 254;
                                                                        
      COMMIT ;                                                          
                                                                        
      CREATE TABLE DSN8!!0.DEMO_UNICODE                                 
                 ( LOWER_A_TO_Z     CHAR(26),                           
                   UPPER_A_TO_Z     CHAR(26),                           
                   ZERO_TO_NINE     CHAR(10),                           
                   X00_TO_XFF    VARCHAR(256)      FOR BIT DATA )       
          IN DSN8D!!E.DSN8S!!U                                          
       CCSID UNICODE;                                                   
                                                                        
      CREATE ALIAS DEMO_UNICODE                                         
         FOR DSN8!!0.DEMO_UNICODE;                                      
                                                                        
       GRANT DBADM                                                      
          ON DATABASE DSN8D!!E                                          
          TO PUBLIC;                                                    
                                                                        
       GRANT USE                                                        
          OF TABLESPACE DSN8D!!E.DSN8S!!U                               
          TO PUBLIC;                                                    
                                                                        
       GRANT DELETE, INSERT, SELECT, UPDATE                             
          ON TABLE DSN8!!0.DEMO_UNICODE                                 
          TO PUBLIC;                                                    
//*                                                                     
//* Step  3: Load the sample UNICODE table                              
//*       Note: The LOAD statement below uses a CCSID parm because the  
//*       source data is in EBCDIC and includes non-text characters     
//*                                                                     
//PH01US03 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT)                  
//SORTLIB  DD DSN=SYS1.SORTLIB,DISP=SHR                                 
//SORTOUT  DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)                   
//DSNTRACE DD SYSOUT=*                                                  
//SYSREC00 DD DISP=SHR,                                                 
//         DSN=DSN!!0.SDSNSAMP(DSN8LDU)                                 
//SYSUT1   DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND)                   
//SYSIN    DD *                                                         
                                                                        
 LOAD DATA INDDN(SYSREC00) REPLACE CONTINUEIF(72:80)='X        '        
      CCSID(37, 65534, 65534)                                           
      INTO TABLE DSN8!!0.DEMO_UNICODE                                   
          ( LOWER_A_TO_Z  POSITION(  1:26 )    CHAR(26),                
            UPPER_A_TO_Z  POSITION( 28:53 )    CHAR(26),                
            ZERO_TO_NINE  POSITION( 55:64 )    CHAR(10),                
            X00_TO_XFF    POSITION( 66 )       VARCHAR   )              
      SORTDEVT SYSDA SORTNUM 4                                          
//*                                                                     
//* Step  4: Display the sample UNICODE data in source and hex format   
//*                                                                     
//PH01US04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)                    
//SYSTSPRT DD  SYSOUT=*                                                 
//SYSPRINT DD  SYSOUT=*                                                 
//SYSUDUMP DD  SYSOUT=*                                                 
//SYSTSIN  DD  *                                                        
 DSN SYSTEM(DSN)                                                        
 RUN  PROGRAM(DSNTEP2) PLAN(DSNTEP!!) -                                 
      LIB('DSN!!0.RUNLIB.LOAD') -                                       
      PARMS('/ALIGN(MID)')                                              
 END                                                                    
//SYSIN    DD *                                                         
  SET CURRENT SQLID = 'SYSADM';                                         
                                                                        
  SELECT LOWER_A_TO_Z,                                                  
         HEX( LOWER_A_TO_Z )    AS LOWER_A_TO_Z_HEX ,                   
         LENGTH( LOWER_A_TO_Z ) AS LOWER_A_TO_Z_LEN                     
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT UPPER_A_TO_Z,                                                  
         HEX( UPPER_A_TO_Z )    AS UPPER_A_TO_Z_HEX ,                   
         LENGTH( UPPER_A_TO_Z ) AS UPPER_A_TO_Z_LEN                     
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT ZERO_TO_NINE,                                                  
         HEX( ZERO_TO_NINE )    AS ZERO_TO_NINE_HEX ,                   
         LENGTH( ZERO_TO_NINE ) AS ZERO_TO_NINE_LEN                     
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 1, 32)           AS X00_TO_X20,             
         HEX( SUBSTR(X00_TO_XFF, 1, 32))     AS X00_TO_X20_HEX,         
         LENGTH( SUBSTR(X00_TO_XFF, 1, 32))  AS X00_TO_X20_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 33, 32)          AS X21_TO_X40,             
         HEX( SUBSTR(X00_TO_XFF, 33, 32))    AS X21_TO_X40_HEX,         
         LENGTH( SUBSTR(X00_TO_XFF, 33, 32)) AS X21_TO_X40_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 65, 32)          AS X41_TO_X60,             
         HEX( SUBSTR(X00_TO_XFF, 65, 32))    AS X41_TO_X60_HEX,         
         LENGTH( SUBSTR(X00_TO_XFF, 65, 32)) AS X41_TO_X60_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 97, 32)          AS X61_TO_X80,             
         HEX( SUBSTR(X00_TO_XFF, 97, 32))    AS X61_TO_X80_HEX,         
         LENGTH( SUBSTR(X00_TO_XFF, 97, 32)) AS X61_TO_X80_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 129, 32)         AS X81_TO_XA0,             
         HEX( SUBSTR(X00_TO_XFF, 129, 32))   AS X81_TO_XA0_HEX,         
         LENGTH(SUBSTR(X00_TO_XFF, 129, 32)) AS X81_TO_XA0_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 161, 32)         AS XA1_TO_XC0,             
         HEX( SUBSTR(X00_TO_XFF, 161, 32))   AS XA1_TO_XC0_HEX,         
         LENGTH(SUBSTR(X00_TO_XFF, 161, 32)) AS XA1_TO_XC0_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 193, 32)         AS XC1_TO_XE0,             
         HEX( SUBSTR(X00_TO_XFF, 193, 32))   AS XC1_TO_XE0_HEX,         
         LENGTH(SUBSTR(X00_TO_XFF, 193, 32)) AS XC1_TO_XE0_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
  SELECT SUBSTR(X00_TO_XFF, 225, 32)         AS XE1_TO_XFF,             
         HEX( SUBSTR(X00_TO_XFF, 225, 32))   AS XE1_TO_XFF_HEX,         
         LENGTH(SUBSTR(X00_TO_XFF, 225, 32)) AS XE1_TO_XFF_LEN          
    FROM DSN8!!0.DEMO_UNICODE;                                          
                                                                        
//*                                                                     
End of change