zOs/PLB/QZDIT02

*process RULES(LAXSEMI); /* suppress semicolon-warning  */
*process RULES(BYNAME) ; /* allow "by name"             */
*process RULES(NOLAXIF); /* suppress conversion in boolean expression */

 /********************************************************************/
 /*                                                                  */
 /*    testprogram fuer yDIT002 sql 128                              */
 /*                                                                  */
 /********************************************************************/
 qzdit02: Proc($parm) options(main);
 %include pgmanfa;
 dcl $parm char(80) varying;
-/**-----------------------------------------------------------------**/
 /**  1.02 Files                                                     **/
 /**-----------------------------------------------------------------**/

 dcl Sysprint         file print output ;

-/**-----------------------------------------------------------------**/
 /**  1.03 Datuemer                                                  **/
 /**-----------------------------------------------------------------**/

   dcl 1 inpV static ,
       5 invV2 char(9000)
   init(( '02USD '
       || '010236'
       || '012991'
       || '012220'
       || '011664'
       || '011234'
       || '010945'
       || '010947'
       || '011235'
       || '012221'
       || '011665'
       || '012992'
       || '010237'
       || '02UYI '
       || '02ADP '
       || '02AED '
       || '02UYN '
       || '010238'
       || '012993'
       || '011666'
       || '012222'
       || '011236'
       || '010949'
       || '010950'
       || '011237'
       || '012223'
       || '011667'
       || '012994'
       || '010239'
       || '02UYU '
       || '02AFA '
       || '02AFN '
       || '02UZS '
       || '010241'
       || '012995'
       || '011668'
       || '012224'
       || '011238'
       || '010952'
       || '010953'
       || '011239'
       || '012225'
       || '011669'
       || '012996'
       || '010242'
       || '02VEB '
       || '02ALK '
       || '02ALL '
       || '02VEF '
       || '010248'
       || '012997'
       || '011670'
       || '012226'
       || '011240'
       || '010955'
       || '010956'
       || '011241'
       || '012237'
       || '011671'
       || '012998'
       || '010249'
       || '02VNC '
       || '02AMD '
       || '02ANG '
       || '02VND '
       || '010251'
       || '013000'
       || '011672'
       || '012238'
       || '011242'
       || '010957'
       || '010958'
       || '011243'
       || '012240'
       || '011673'
       || '013001'
       || '010260'
       || '02VUV '
       || '02AOA '
       || '02AOK '
       || '02WST '
       || '010261'
       || '013002'
       || '011674'
       || '012241'
       || '011244'
       || '010959'
       || '010960'
       || '011245'
       || '012242'
       || '011675'
       || '013003'
       || '010265'
       || '02XAF '
       || '02AON '
       || '02AOR '
       || '02XAF '
       || '010267'
       || '013004'
       || '011676'
       || '012243'
       || '011246'
       || '010961'
       || '010962'
       || '011247'
       || '012244'
       || '011677'
       || '013005'
       || '010275'
       || '02XAF '
       || '02ARP '
       || '02ARS '
       || '02XAG '
       || '010280'
       || '013006'
       || '011678'
       || '012245'
       || '011248'
       || '010963'
       || '010964'
       || '011249'
       || '012246'
       || '011679'
       || '013008'
       || '010285'
       || '02XAU '
       || '02ATS '
       || '02AUD '
       || '02XBA '
       || '010290'
       || '013015'
       || '011680'
       || '012257'
       || '011250'
       || '010965'
       || '010966'
       || '011251'
       || '012258'
       || '011681'
       || '013016'
       || '010292'
       || '02XCD '
       || '02AWG '
       || '02AZM '
       || '02XDR '
       || '010295'
       || '013017'
       || '011682'
       || '012260'
       || '011252'
       || '010967'
       || '010968'
       || '011253'
       || '012261'
       || '011683'
       || '013090'
       || '010305'
       || '02XFO '
       || '02AZN '
       || '02BAD '
       || '02XOF '
       || '010306'
       || '013100'
       || '011684'
       || '012262'
       || '011254'
       || '010969'
       || '010970'
       || '011260'
       || '012263'
       || '011685'
       || '013101'
       || '010307'
       || '02XOF '
       || '02BAM '
       || '02BBD '
       || '02XOF '
       || '010310'
       || '013105'
       || '011686'
       || '012264'
       || '011261'
       || '010971'
       || '010972'
       || '011262'
       || '012270'
       || '011687'
       || '013106'
       || '010311'
       || '02XOF '
       || '02BDT '
       || '02BEC '
       || '02XOF '
       || '010312'
       || '013110'
       || '011688'
       || '012271'
       || '011263'
       || '010973'
       || '010974'
       || '011264'
       || '012272'
       || '011689'
       || '013111'
       || '010315'
       || '02XOF '
       || '02BEF '
       || '02BGJ '
       || '02XOF '
       || '010320'
       || '013115'
       || '011690'
       || '012273'
       || '011270'
       || '010975'
       || '010976'
       || '011290'
       || '012274'
       || '011691'
       || '013120'
       || '010325'
       || '02XPD '
       || '02BGK '
       || '02BGL '
       || '02XPF '
       || '010331'
       || '013121'
       || '011692'
       || '012280'
       || '011291'
       || '010977'
       || '010978'
       || '011292'
       || '012281'
       || '011693'
       || '013125'
       || '010332'
       || '02XPT '
       || '02BGN '
       || '02BHD '
       || '02XZN '
       || '010335'
       || '013130'
       || '011694'
       || '012282'
       || '011301'
       || '010979'
       || '010980'
       || '011302'
       || '012283'
       || '011695'
       || '013210'
       || '010336'
       || '02YDD '
       || '02BIF '
       || '02BMD '
       || '02YER '
       || '010337'
       || '013211'
       || '011696'
       || '012284'
       || '011309'
       || '010981'
       || '010982'
       || '011310'
       || '012285'
       || '011697'
       || '013215'
       || '010338'
       || '02YUD '
       || '02BND '
       || '02BOB '
       || '02YUM '
       || '010340'
       || '013220'
       || '012286'
       || '011698'
       || '011311'
       || '010983'
       || '010984'
       || '011312'
       || '011699'
       || '012297'
       || '013221'
       || '010345'
       || '02YUN '
       || '02BOP '
       || '02BOV '
       || '02ZAR '
       || '010350'
       || '013300'
       || '012298'
       || '011700'
       || '011313'
       || '010985'
       || '010986'
       || '011315'
       || '011701'
       || '012300'
       || '013301'
       || '010355'
       || '02ZMK '
       || '02BRB '
       || '02BRL '
       || '02ZMW '
       || '010357'
       || '013302'
       || '012301'
       || '011702'
       || '011320'
       || '010987'
       || '010988'
       || '011321'
       || '011703'
       || '012302'
       || '013310'
       || '010358'
       || '02ZRN '
       || '02BRN '
       || '02BSD '
       || '02ZRZ '
       || '010360'
       || '013320'
       || '012303'
       || '011704'
       || '011322'
       || '010989'
       || '010990'
       || '011323'
       || '011705'
       || '012304'
       || '013330'
       || '010365'
       || '02ZWC '
       || '02BTN '
       || '02BWP '
       || '02ZWD '
       || '010370'
       || '013331'
       || '012305'
       || '011706'
       || '011330'
       || '010991'
       || '010992'
       || '011331'
       || '011707'
       || '012306'
       || '013400'
       || '010375'
       || '02ZWL '
       || '02BYB '
       || '02BYR '
       || '02ZWN '
       || '010380'
       || '013409'
       || '012313'
       || '011708'
       || '011332'
       || '010993'
       || '010994'
       || '011333'
       || '011709'
       || '012317'
       || '013410'
       || '010385'
       || '010001'
       || '02BZD '
       || '02CAD '
       || '010002'
       || '010390'
       || '013412'
       || '012318'
       || '011710'
       || '011398'
       || '010995'
       || '010996'
       || '011399'
       || '011711'
       || '012320'
       || '013510'
       || '010395'
       || '010003'
       || '02CDF '
       || '02CHF '
       || '010004'
       || '010400'
       || '013511'
       || '012321'
       || '011712'
       || '011400'
       || '010997'
       || '010998'
       || '011401'
       || '011713'
       || '012322'
       || '013550'
       || '010402'
       || '010005'
       || '02CLF '
       || '02CLP '
       || '010006'
       || '010405'
       || '013711'
       || '012323'
       || '011714'
       || '011402'
       || '010999'
       || '011001'
       || '011403'
       || '011715'
       || '012324'
       || '013860'
       || '010415'
       || '010007'
       || '02CNH '
       || '02CNX '
       || '010008'
       || '010420'
       || '013980'
       || '012329'
       || '011716'
       || '011410'
       || '011002'
       || '011003'
       || '011411'
       || '011717'
       || '012330'
       || '013981'
       || '010425'
       || '010009'
       || '02CNY '
       || '02COP '
       || '010010'
       || '010427'
       || '013990'
       || '012331'
       || '011718'
       || '011412'
       || '011010'
       || '011011'
       || '011413'
       || '011719'
       || '012332'
       || '014001'
       || '010430'
       || '010011'
       || '02COU '
       || '02CRC '
       || '010012'
       || '010435'
       || '014002'
       || '012333'
       || '011720'
       || '011450'
       || '011012'
       || '011013'
       || '011451'
       || '011721'
       || '012334'
       || '014010'
       || '010438'
       || '010013'
       || '02CSJ '
       || '02CUC '
       || '010014'
       || '010439'
       || '014011'
       || '012335'
       || '011722'
       || '011452'
       || '011014'
       || '011018'
       || '011500'
       || '011723'
       || '012336'
       || '014020'
       || '010440'
       || '010015'
       || '02CUP '
       || '02CVE '
       || '010016'
       || '010441'
       || '014021'
       || '012343'
       || '011724'
       || '011501'
       || '011019'
       || '011020'
       || '011502'
       || '011725'
       || '012347'
       || '014099'
       || '010442'
       || '010017'
       || '02CYP '
       || '02CZK '
       || '010018'
       || '010443'
       || '014100'
       || '012348'
       || '011726'
       || '011503'
       || '011021'
       || '011025'
       || '011504'
       || '011727'
       || '012350'
       || '014101'
       || '010445'
       || '010019'
       || '02DDM '
       || '02DEM '
       || '010020'
       || '010447'
       || '014106'
       || '012360'
       || '011728'
       || '011505'
       || '011026'
       || '011027'
       || '011506'
       || '011729'
       || '012361'
       || '014110'
       || '010448'
       || '010021'
       || '02DJF '
       || '02DKK '
       || '010022'
       || '010455'
       || '014111'
       || '012362'
       || '011730'
       || '011507'
       || '011028'
       || '011029'
       || '011508'
       || '011731'
       || '012363'
       || '010456'
       || '010023'
       || '02DOP '
       || '014112'
       || '014113'
       || '02DZD '
       || '010024'
       || '010457'
       || '012364'
       || '011732'
       || '011509'
       || '011030'
       || '011031'
       || '011510'
       || '011733'
       || '012365'
       || '010458'
       || '010025'
       || '02ECS '
       || '014115'
       || '014120'
       || '02EEK '
       || '010026'
       || '010459'
       || '012383'
       || '011734'
       || '011511'
       || '011032'
       || '011035'
       || '011512'
       || '011735'
       || '012384'
       || '010460'
       || '010027'
       || '02EGP '
       || '014121'
       || '014125'
       || '02ERN '
       || '010028'
       || '010502'
       || '012390'
       || '011736'
       || '011513'
       || '011036'
       || '011040'
       || '011514'
       || '011737'
       || '012391'
       || '010504'
       || '010029'
       || '02ESA '
       || '014130'
       || '014209'
       || '02ESB '
       || '010030'
       || '010505'
       || '012392'
       || '011738'
       || '011515'
       || '011041'
       || '011042'
       || '011516'
       || '011739'
       || '012393'
       || '010506'
       || '010031'
       || '02ESP '
       || '014211'
       || '014212'
       || '02ETB '
       || '010032'
       || '010507'
       || '012397'
       || '011740'
       || '011517'
       || '011043'
       || '011044'
       || '011518'
       || '011741'
       || '012398'
       || '010508'
       || '010033'
       || '02EUR '
       || '014215'
       || '014225'
       || '02FIM '
       || '010034'
       || '010509'
       || '012399'
       || '011742'
       || '011519'
       || '011045'
       || '011046'
       || '011520'
       || '011743'
       || '012405'
       || '010510'
       || '010035'
       || '02FJD '
       || '014230'
       || '014231'
       || '02FKP '
       || '010036'
       || '010511'
       || '012410'
       || '011744'
       || '011521'
       || '011049'
       || '011051'
       || '011522'
       || '011745'
       || '012422'
       || '010513'
       || '010037'
       || '02FRF '
       || '014232'
       || '014233'
       || '02GBP '
       || '010038'
       || '010517'
       || '012423'
       || '011746'
       || '011523'
       || '011052'
       || '011053'
       || '011524'
       || '011747'
       || '012497'
       || '010518'
       || '010039'
       || '02GEL '
       || '014235'
       || '014236'
       || '02GGP '
       || '010040'
       || '010525'
       || '012498'
       || '011748'
       || '011525'
       || '011054'
       || '011055'
       || '011526'
       || '011749'
       || '012499'
       || '010529'
       || '010041'
       || '02GHC '
       || '014237'
       || '014238'
       || '02GHS '
       || '010042'
       || '010533'
       || '012500'
       || '011750'
       || '011527'
       || '011061'
       || '011062'
       || '011528'
       || '011751'
       || '012501'
       || '010537'
       || '010043'
       || '02GIP '
       || '014400'
       || '014510'
       || '02GMD '
       || '010044'
       || '010541'
       || '012502'
       || '011752'
       || '011529'
       || '011063'
       || '011064'
       || '011530'
       || '011753'
       || '012503'
       || '010549'
       || '010045'
       || '02GNF '
       || '014511'
       || '014550'
       || '02GQE '
       || '010046'
       || '010553'
       || '012504'
       || '011754'
       || '011531'
       || '011065'
       || '011069'
       || '011532'
       || '011755'
       || '012505'
       || '010557'
       || '010047'
       || '02GRD '
       || '014551'
       || '014590'
       || '02GTQ '
       || '010048'
       || '010558'
       || '012509'
       || '011756'
       || '011533'
       || '011070'
       || '011071'
       || '011534'
       || '011757'
       || '012510'
       || '010561'
       || '010049'
       || '02GYD '
       || '014702'
       || '014703'
       || '02HKD '
       || '010050'
       || '010563'
       || '012511'
       || '011758'
       || '011535'
       || '011072'
       || '011073'
       || '011536'
       || '011759'
       || '012512'
       || '010565'
       || '010051'
       || '02HNL '
       || '014721'
       || '014730'
       || '02HRD '
       || '010052'
       || '010567'
       || '012513'
       || '011760'
       || '011537'
       || '011074'
       || '011075'
       || '011538'
       || '011761'
       || '012518'
       || '010569'
       || '010053'
       || '02HRK '
       || '014740'
       || '014750'
       || '02HTG '
       || '010055'
       || '010573'
       || '012521'
       || '011762'
       || '011539'
       || '011076'
       || '011077'
       || '011540'
       || '011763'
       || '012522'
       || '010585'
       || '010056'
       || '02HUF '
       || '014751'
       || '014755'
       || '02IDR '
       || '010057'
       || '010589'
       || '012523'
       || '011764'
       || '011541'
       || '011078'
       || '011079'
       || '011542'
       || '011765'
       || '012529'
       || '010593'
       || '010058'
       || '02IEP '
       || '014756'
       || '014790'
       || '02ILP '
       || '010060'
       || '010595'
       || '012530'
       || '011766'
       || '011543'
       || '011080'
       || '011081'
       || '011544'
       || '011767'
       || '012531'
       || '010597'
       || '010061'
       || '02ILR '
       || '014800'
       || '014900'
       || '02ILS '
       || '010062'
       || '010601'
       || '012532'
       || '011768'
       || '011545'
       || '011082'
       || '011083'
       || '011546'
       || '011769'
       || '012533'
       || '010605'
       || '010064'
       || '02INR '
       || '014901'
       || '014902'
       || '02IQD '
       || '010065'
       || '010606'
       || '012541'
       || '011770'
       || '011547'
       || '011084'
       || '011085'
       || '011548'
       || '011771'
       || '012545'
       || '010609'
       || '010066'
       || '02IRR '
       || '014903'
       || '014904'
       || '02ISJ '
       || '010069'
       || '010613'
       || '012546'
       || '011772'
       || '011549'
       || '011086'
       || '011087'
       || '011550'
       || '011773'
       || '012555'
       || '010617'
       || '010070'
       || '02ISK '
       || '014905'
       || '014906'
       || '02ITL '
       || '010073'
       || '010618'
       || '012559'
       || '011774'
       || '011551'
       || '011088'
       || '011090'
       || '011552'
       || '011775'
       || '012560'
       || '010619'
       || '010074'
       || '02JMD '
       || '014950'
       || '014951'
       || '02JOD '
       || '010075'
       || '010625'
       || '012561'
       || '011776'
       || '011553'
       || '011091'
       || '011092'
       || '011554'
       || '011777'
       || '012562'
       || '010641'
       || '010082'
       || '02JPY '
       || '014952'
       || '014953'
       || '02KES '
       || '010083'
       || '010642'
       || '012563'
       || '011778'
       || '011555'
       || '011093'
       || '011094'
       || '011556'
       || '011779'
       || '012564'
       || '010645'
       || '010084'
       || '02KGS '
       || '014954'
       || '014955'
       || '02KHR '
       || '010087'
       || '010646'
       || '012569'
       || '011780'
       || '011557'
       || '011095'
       || '011096'
       || '011558'
       || '011781'
       || '012570'
       || '010647'
       || '010088'
       || '02KMF '
       || '015910'
       || '015911'
       || '02KPW '
       || '010089'
       || '010649'
       || '012571'
       || '011782'
       || '011559'
       || '011097'
       || '011098'
       || '011560'
       || '011783'
       || '012572'
       || '010653'
       || '010090'
       || '02KRW '
       || '015912'
       || '015914'
       || '02KWD '
       || '010091'
       || '010657'
       || '012573'
       || '011784'
       || '011561'
       || '011100'
       || '011101'
       || '011562'
       || '011785'
       || '012580'
       || '010661'
       || '010093'
       || '02KYD '
       || '015918'
       || '015919'
       || '02KZT '
       || '010094'
       || '010671'
       || '012581'
       || '011786'
       || '011563'
       || '011102'
       || '011103'
       || '011564'
       || '011787'
       || '012582'
       || '010672'
       || '010095'
       || '02LAJ '
       || '015921'
       || '015922'
       || '02LAK '
       || '010096'
       || '010673'
       || '012583'
       || '011788'
       || '011565'
       || '011104'
       || '011105'
       || '011566'
       || '011789'
       || '012601'
       || '010674'
       || '010097'
       || '02LBP '
       || '015923'
       || '015924'
       || '02LKR '
       || '010098'
       || '010675'
       || '012605'
       || '011790'
       || '011567'
       || '011106'
       || '011107'
       || '011568'
       || '011791'
       || '012606'
       || '010677'
       || '010099'
       || '02LRD '
       || '015925'
       || '015926'
       || '02LSL '
       || '010101'
       || '010678'
       || '012607'
       || '011792'
       || '011569'
       || '011108'
       || '011109'
       || '011570'
       || '011793'
       || '012608'
       || '010679'
       || '010102'
       || '02LSM '
       || '015927'
       || '015928'
       || '02LTL '
       || '010104'
       || '010681'
       || '012609'
       || '011794'
       || '011571'
       || '011110'
       || '011111'
       || '011572'
       || '011795'
       || '012610'
       || '010685'
       || '010105'
       || '02LUF '
       || '015929'
       || '015930'
       || '02LVL '
       || '010106'
       || '010689'
       || '012611'
       || '011796'
       || '011573'
       || '011112'
       || '011113'
       || '011574'
       || '011797'
       || '012612'
       || '010697'
       || '010107'
       || '02LYD '
       || '015931'
       || '015932'
       || '02MAD '
       || '010108'
       || '010700'
       || '012613'
       || '011798'
       || '011575'
       || '011114'
       || '011115'
       || '011576'
       || '011799'
       || '012625'
       || '010701'
       || '010109'
       || '02MAL '
       || '019001'
       || '019002'
       || '02MCU '
       || '010110'
       || '010703'
       || '012626'
       || '012000'
       || '011577'
       || '011116'
       || '011118'
       || '011578'
       || '012001'
       || '012627'
       || '010704'
       || '010111'
       || '02MDL '
       || '019003'
       || '019004'
       || '02MGA '
       || '010112'
       || '010705'
       || '012631'
       || '012002'
       || '011579'
       || '011119'
       || '011120'
       || '011580'
       || '012003'
       || '012632'
       || '010706'
       || '010113'
       || '02MGF '
       || '019005'
       || '019006'
       || '02MKD '
       || '010116'
       || '010707'
       || '012633'
       || '012010'
       || '011581'
       || '011125'
       || '011126'
       || '011582'
       || '012011'
       || '012634'
       || '010708'
       || '010117'
       || '02MMK '
       || '019011'
       || '019012'
       || '02MNI '
       || '010118'
       || '010710'
       || '012640'
       || '012014'
       || '011583'
       || '011127'
       || '011128'
       || '011584'
       || '012015'
       || '012641'
       || '010755'
       || '010119'
       || '02MNT '
       || '019015'
       || '019025'
       || '02MOP '
       || '010120'
       || '010760'
       || '012642'
       || '012016'
       || '011585'
       || '011130'
       || '011131'
       || '011586'
       || '012017'
       || '012643'
       || '010768'
       || '010122'
       || '02MPB '
       || '019030'
       || '019035'
       || '02MRO '
       || '010123'
       || '010769'
       || '012661'
       || '012020'
       || '011587'
       || '011132'
       || '011133'
       || '011588'
       || '012021'
       || '012662'
       || '010770'
       || '010124'
       || '02MSN '
       || '019040'
       || '019050'
       || '02MTL '
       || '010125'
       || '010771'
       || '012663'
       || '012025'
       || '011589'
       || '011134'
       || '011140'
       || '011590'
       || '012026'
       || '012664'
       || '010772'
       || '010126'
       || '02MTP '
       || '019080'
       || '019090'
       || '02MUR '
       || '010127'
       || '010775'
       || '012665'
       || '012028'
       || '011591'
       || '011141'
       || '011149'
       || '011592'
       || '012029'
       || '012666'
       || '010780'
       || '010129'
       || '02MVQ '
       || '019999'
       || '02MVR '
       || '010130'
       || '010781'
       || '012667'
       || '012030'
       || '011593'
       || '011150'
       || '011151'
       || '011594'
       || '012031'
       || '012668'
       || '010782'
       || '010132'
       || '02MWK '
       || '02MXN '
       || '010133'
       || '010783'
       || '012669'
       || '012033'
       || '011595'
       || '011152'
       || '011153'
       || '011596'
       || '012040'
       || '012680'
       || '010784'
       || '010135'
       || '02MXP '
       || '02MXV '
       || '010136'
       || '010785'
       || '012681'
       || '012041'
       || '011597'
       || '011154'
       || '011155'
       || '011598'
       || '012042'
       || '012682'
       || '010790'
       || '010138'
       || '02MYR '
       || '02MZE '
       || '010139'
       || '012684'
       || '012043'
       || '011599'
       || '011156'
       || '010805'
       || '010809'
       || '011157'
       || '011600'
       || '012045'
       || '012685'
       || '010141'
       || '02MZM '
       || '02MZN '
       || '010142'
       || '012686'
       || '012046'
       || '011601'
       || '011158'
       || '010811'
       || '010813'
       || '011160'
       || '011602'
       || '012047'
       || '012687'
       || '010143'
       || '02NAD '
       || '02NGN '
       || '010144'
       || '012690'
       || '012048'
       || '011603'
       || '011161'
       || '010817'
       || '010821'
       || '011162'
       || '011604'
       || '012050'
       || '012691'
       || '010145'
       || '02NIC '
       || '02NIO '
       || '010146'
       || '012695'
       || '012051'
       || '011605'
       || '011163'
       || '010823'
       || '010825'
       || '011164'
       || '011606'
       || '012052'
       || '012696'
       || '010147'
       || '02NLG '
       || '02NOK '
       || '010150'
       || '012713'
       || '012053'
       || '011607'
       || '011165'
       || '010829'
       || '010833'
       || '011166'
       || '011608'
       || '012054'
       || '012714'
       || '010151'
       || '02NPR '
       || '02NZD '
       || '010152'
       || '012715'
       || '012055'
       || '011609'
       || '011167'
       || '010837'
       || '010840'
       || '011168'
       || '011610'
       || '012056'
       || '012717'
       || '010153'
       || '02OMR '
       || '02PAB '
       || '010154'
       || '012730'
       || '012057'
       || '011611'
       || '011169'
       || '010841'
       || '010842'
       || '011170'
       || '011612'
       || '012060'
       || '012731'
       || '010156'
       || '02PEN '
       || '02PES '
       || '010157'
       || '012740'
       || '012061'
       || '011613'
       || '011177'
       || '010843'
       || '010844'
       || '011178'
       || '011614'
       || '012062'
       || '012750'
       || '010158'
       || '02PGK '
       || '02PHP '
       || '010161'
       || '012751'
       || '012063'
       || '011615'
       || '011179'
       || '010845'
       || '010849'
       || '011180'
       || '011616'
       || '012064'
       || '012758'
       || '010162'
       || '02PKR '
       || '02PLN '
       || '010163'
       || '012759'
       || '012065'
       || '011617'
       || '011181'
       || '010857'
       || '010870'
       || '011182'
       || '011618'
       || '012066'
       || '012760'
       || '010164'
       || '02PTE '
       || '02PYG '
       || '010165'
       || '012773'
       || '012067'
       || '011619'
       || '011183'
       || '010871'
       || '010872'
       || '011184'
       || '011620'
       || '012068'
       || '012780'
       || '010166'
       || '02QAR '
       || '02ROL '
       || '010167'
       || '012785'
       || '012069'
       || '011621'
       || '011185'
       || '010873'
       || '010874'
       || '011186'
       || '011622'
       || '012070'
       || '012790'
       || '010168'
       || '02RON '
       || '02RSD '
       || '010169'
       || '012800'
       || '012071'
       || '011623'
       || '011187'
       || '010877'
       || '010878'
       || '011188'
       || '011624'
       || '012072'
       || '012801'
       || '010170'
       || '02RUB '
       || '02RUR '
       || '010171'
       || '012802'
       || '012073'
       || '011625'
       || '011189'
       || '010879'
       || '010880'
       || '011190'
       || '011626'
       || '012074'
       || '012803'
       || '010172'
       || '02RWF '
       || '02SAR '
       || '010173'
       || '012804'
       || '012075'
       || '011627'
       || '011191'
       || '010881'
       || '010882'
       || '011192'
       || '011628'
       || '012076'
       || '012806'
       || '010174'
       || '02SBD '
       || '02SCR '
       || '010175'
       || '012807'
       || '012077'
       || '011629'
       || '011195'
       || '010883'
       || '010884'
       || '011196'
       || '011630'
       || '012078'
       || '012820'
       || '010176'
       || '02SDD '
       || '02SDG '
       || '010177'
       || '012821'
       || '012079'
       || '011631'
       || '011197'
       || '010885'
       || '010886'
       || '011632'
       || '011198'
       || '012080'
       || '012822'
       || '010178'
       || '02SDP '
       || '02SEK '
       || '010179'
       || '012823'
       || '012081'
       || '011200'
       ));
    dcl 1 inp based(addr(inpV)),
          5 ele (1500),
            10 d2 char(2) ,
            10 d5 char(4) ;

 dcl 1 WHERE,
       5 W1 char( 8) INIT('20140707') ,
       5 W2 char( 2)                  ,
       5 W4 char( 8) INIT('20140707') ,
       5 W5 char(20)                  ;
 dcl 1 fetch,
       5 f0 char(20) ,
       5 f1 char( 8) ,
       5 f2 char( 2) ,
       5 f3 char( 2) ,
       5 f4 char( 8) ,
       5 f5 char(20) ,
       5 f6 char(26) ,
       5 f7 char( 7) ;
1/**-----------------------------------------------------------------**/
 /**  1.5  DB2 Infrastruktur                                         **/
 /**-----------------------------------------------------------------**/

    exec sql include sqlca;

 /* Cursor */
-/**-----------------------------------------------------------------**/
 /**  1.6  Strukturen                                                **/
 /**-----------------------------------------------------------------**/

 dcl
   1 aux                                         ,  /* auxiliary */
     3 isPutOn bit(1) aligned init('0'b) ,
     3 putFlag(100)  char(1) init((100)('')),
     3 C_tcd152_open  bit(1) aligned init('0'b) ,
     3 C_yCDPUT3_open bit(1) aligned init('0'b) ,
     3 c_region_open bit(1) aligned init('0'b) ,
     3 c_tracePidClientId_open bit(1) aligned init('0'b) ,
     3 ts             char(26)         init( '' ),
     3 t       bin fixed(31,0) init( 0  )        ,  /* tabulator */
     3 p_9     pic'9'          init( 0  )        ;



-/**-----------------------------------------------------------------**/
 /**  1.7  Uebrige Deklarationen                                     **/
 /**-----------------------------------------------------------------**/

 dcl ( addr
     , binary
     , cstg
     , datetime
     , hbound
     , high
     , length
     , max
     , min
     , mod
     , null
     , pliRetv
     , ptradd
     , string
     , substr
     , sysnull
     , translate
     , trim
     , verify   )     builtin;

 /* db cursor (dynamic sql)                                     sql   */
    exec sql declare c1 cursor for s1;

 /* counters                                                    decl  */
    dcl 1 cnt
        , 5 fnd             bin fixed(31) init(0)
        , 5 noF             bin fixed(31) init(0)
        , 5 cnt             bin fixed(31) init(0)
        , 5 sel             bin fixed(31) init(0)
        , 5 ins             bin fixed(31) init(0)
        , 5 write_ddout     bin fixed(31) init(0)
        , 5 errors          bin fixed(31) init(0)
        , 5 commit_counter  bin fixed(31) init(0)
        , 5 tst             char(26) init('')
        , 5 fun             char(1) init('')
        ;
    dcl (cx, iMax, ix, iy) fixed(31) bin;
    dcl res bit(1);




 /*_____________________________________________________________________
 main                                                                 */

 /* inits                                                             */
    put ('start of qzDit02') skip;
    put ('   parm=' || trim($parm) || ' len=' || length($parm)) skip;
    call sql_connect();
    put ('connected') skip;
    iMax = 1000;
    do cx=1 to length($parm);
        fun = substr($parm, cx, 1);
        if fun = 'h' then do;
            iMax = 100000;
            end;
        else if fun = 'O' | fun = 'F' then do;
            do ix=1 to iMax;
                iy = mod(ix, 1500) + 1;
         /*  put (''|| iY ||' d2='|| d2(iY) ||' d5='|| d5(iY)) skip; */
                w2 = d2(iY);
                w5 = d5(iY);
                if fun = 'O' then
                    res = sqlOrig();
                else if fun = 'F' then
                    res = sqlFetFir();
                if res then do;
                 /* put('found f0=' || f0 ||' f1='|| f1 ||' f2='|| f2
                     ||' f3=' || f3 ||' f4='|| f4 ||' f5='|| f5) skip;*/
                    fnd = fnd + 1;
                    end;
                else do;
              /*    put('not found') skip; */
                    noF = noF + 1;
                    end;
                end;
            put ('fun='|| fun || ': ' || iMax || ': '
                 || fnd || ' found and ' || noF || ' not') skip;
            end;
        else if fun <> ' ' then do;
            put ('bad fun='|| fun ) skip;
            end;
        end;
    return;
    if substr($parm, 1, 1) = 'A' then
         call doA(substr($parm, 2, 1));
    else if substr($parm, 1, 1) = 'B' then
         call doB;
    else do;
        put ('   no test ') skip;
        cnt.tst = '';
        cnt.sel = 123;
        cnt.tst = 'sel = ' || edit(sel, '9999') || ' und schluss';
        put ('  sel=123: ', cnt.tst) skip;
        exec sql
            select current timestamp into :cnt.tst
                from sysibm.sysDummy1
        ;
        put ('sql code: ',  sqlCode) skip;
        if sqlCode <> 0 THEN
            call sqlMsg;
        put ('selected current timestamp: ',  cnt.tst) skip;
        end;
    RETURN;


 /*_____________________________________________________________________
 subroutines                                                          */

 sqlOrig: proc returns(bit(1));
 exec sql
   SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
         DI00206, DI00207
     INTO :F0, :F1, :F2, :F3, :F4, :F5, :F6, :F7
   FROM oa1p.VDI002A1A A WHERE
   DI00201 <= :W1 AND DI00201 = ( SELECT MAX ( DI00201 ) FROM
    VDI002A1A WHERE DI00201 <= :W1 AND DI00202 = A.DI00202
   AND DI00203 = A.DI00203 AND DI00204 >= :W4 AND DI00205 =
   A.DI00205 ) AND DI00202 = :W2 AND DI00203 = '  ' AND
   DI00204 >= :W4 AND DI00205 = :W5
   fetch first 1 row only
 ;
 if sqlCode = 0 then
     return('1'b);
 if sqlCode <> 100 then
     call sqlErr(sourceLine(), 'sqlOrig select into');
 return ('0'b);
 end sqlOrig;

 sqlFetFir: proc returns(bit(1));
 exec sql
   SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
          DI00206, DI00207
     INTO :F0, :F1, :F2, :F3, :F4, :F5, :F6, :F7
     from oa1p.VDI002A1A A
     WHERE DI00201 <= :w1
           AND DI00202 = :w2 AND DI00203 = '  '
           AND DI00204 >= :w4 AND DI00205 = :w5
     order by di00201 desc
     fetch first 1 row only
 ;
 if sqlCode = 0 then
     return('1'b);
 if sqlCode <> 100 then
     call sqlErr(sourceLine(), 'sqlFetFir select into');
 return ('0'b);
 end sqlFetFir;

 doA:proc($f);
     dcl $f char(1);
     dcl (ix, jx) bin fixed(31) init(0);
     dcl (pa, fo)char(3);
     dcl uu char(36);
     dcl tx char(10000) varying;
     do jx=1 to 5;
         do ix=1 to 10000;
             pa = edit(1 + mod(ix, 5), '999');
             uu = 'uuid' || edit(ix, '9999') || '=uuid';
             fo = 'for';
             tx = copy('p=' || pa || ' uuid=' || uu || ' fo=' || fo
                        || '...   ', 40);
     /*      if $f = '1' then
                 call doV1(pa, uu, fo, tx);
             else if $f = '2' then
                 call doV2(pa, uu, fo, tx);
             else if $f = '3' then
                 call doV3(pa, uu, fo, tx);
     */      end;
         end;
     call sql_commit;
     put ('commit after ' || trim(edit(cnt.cnt, 'zzzzzz9'))
               || ' ' || $f || ': ' || cnt.fun) skip;
 end doA;

 doB:proc();
 end doB;
                                                                      /*
 sql connect__________________________________________________________*/
    %include yxrrsaf;
 sql_connect:proc();

 dcl ssid char(04) init('DBOF');
 dcl plan char(08) init('QZTEST');

    if yxrrsaf('CONNECT',ssid,plan) ^= 0 then
            put('qzDit02'
           ,'Error in YXRRSAF Call'
           ,'SSID - '||ssid
           ,'PLAN - '||plan) skip;
 end sql_connect;
                                                                      /*
 commit_______________________________________________________________*/
 sql_commit: proc();
    if yxrrsaf('COMMIT') ^= 0 then
       put('qzDit02'
           ,'Error in YXRRSAF Commit Call');
 end sql_commit;

 sql_rollback: proc();
    if yxrrsaf('ROLLBACK') ^= 0 then
       put('qzDit02'
           ,'Error in YXRRSAF ROLLBACK Call');
 end sql_rollback;

 DCL DSNTIAR ENTRY EXTERNAL OPTIONS(ASM INTER RETCODE);
 sqlMsg: proc ();
 DCL  MSGWIDTH FIXED BIN(31) INIT(72);
 DCL MSGBLEN     FIXED BIN(15) INIT(20);   /* MAX # SQL MESSAGES    */
 DCL i           FIXED BIN(31) INIT(0);

 DCL 01 MESSAGE                            /* MESSAGE RETURN BUFFER */
     ,  02 MESSAGEL FIXED BIN(15) INIT(1440)       /* BUFFER LENGTH */
     ,  02 MESSAGET(MSGBLEN) CHAR(msgWidth) INIT((*)' ')    /* TEXT */
     ;

 /* NOW PRINT OUT SQL STATEMENT RESULTS VIA DSNTIAR */
 CALL DSNTIAR(SQLCA,MESSAGE,MSGWIDTH);
 IF PLIRETV ^= 0 THEN DO;   /* IF THE RETURN CODE ISN'T ZERO@08*/
                               /* ISSUE AN ERROR MESSAGE       @08*/
   PUT EDIT (' RETURN CODE ', PLIRETV,                      /* @08*/
             ' FROM MESSAGE ROUTINE DSNTIAR.')              /* @08*/
            (COL(1), A(13), F(8), A(30)); /* ISSUE THE MESSAGE @08*/
 END;                          /* END ISSUE AN ERROR MESSAGE   @08*/
 DO I = 1 TO MSGBLEN                                      /* @08*/
 WHILE (MESSAGET(I) ^= '');                              /* @08*/
  PUT EDIT ( MESSAGET(I) ) (COL(1), A(msgWIdth));           /* @08*/
 END;                                                       /* @08*/
 end SqlMsg;
 sqlErr: proc (lNo, txt);
     DCL lNo     FIXED BIN(31);
     dcl txt char(500) varying;
     put ('error at ' || trim(edit(lNo, 'ZZZZZZZZZ9'))
                      || ': ' || txt) skip;
     call sqlMsg;
     call sql_rollback;
     put ('error signal error') skip;
     signal error;
 end sqlErr;

 end QZDIT02;