That is because you do not use the builtin SQL pre-processor...
Code: Select all
//PLI EXEC PGM=IBMZPLI,PARM='OBJECT,OPTIONS'
As a minimum change this into
Code: Select all
//IBMZPLI EXEC PGM=IBMZPLI,
// REGION=0M,
// PARM=('+DD:PLIUSER')
and add a
Code: Select all
IBMZPLI.PLIUSER DD DSN=whatever(PXEP37Z),DISP=SHR
with member PXEP37Z (or whatever you might want to call it) containing, if you want to generate high-quality code, the options below, or your organisation's options, which are likely to be, been there, done that, far less optimal:
Code: Select all
aggregate(dec)
arch(7)
attributes(s)
backreg(5)
bifprec(31)
blank('05'x)
blkoff
ceestart(last)
check(noconformance nostorage)
cmpat(v2)
codepage(1140)
nocommon
nocompact
compile
copyright('(C) Copyright Whatever')
csect
csectcut(4)
currency('$')
nodbcs
dd(sysprint,sysin,syslib,syspunch,*,*,*,*)
dd(*,*,*,*,syslin,sysadata,sysxmlsd,sysdebug)
decimal(foflonasgn noforcedsign)
default(ibm)
default(aligned)
default(assignable)
default(byaddr)
default(connected)
default(desclocator)
default(descriptor)
default(dummy(unaligned))
default(e(hexadec))
default(ebcdic)
default(hexadec)
default(linkage(optlink))
default(native)
default(nativeaddr)
default(nobin1arg)
default(noevendec)
default(noinitfill)
default(noinline)
default(nonrecursive)
default(nooverlap)
default(noretcode)
default(null370)
default(ordinal(max))
default(reorder)
default(returns(byaddr))
default(short(hexadec))
display(wto)
nodllinit
noexit
extrn(full)
flag(i)
float(afp(novolatile) nodfp)
floatinmath(asis)
gonumber
nographic
incafter(process(''))
noinitauto
noinitbased
noinitctl
noinitstatic
nis
nointerrupt
langlvl(os saa2)
limits(extname(7) fixeddec(15,31) fixedbin(31,63) name(31))
lc(32767)
nolist
nomacro
nomap
margini(' ')
mar(2,72,1)
maxmem(1048576)
maxmsg(e 32767)
maxnest(block(8) do(8) if(8))
maxstmt(2048)
maxtemp(4096)
names('#@$','#@$')
natlang(enu)
nest
not('^')
number
obj
nooffset
opt(3)
options(all)
or('|')
pp(macro('case(asis)'))
prectype(ans)
noproceed(s)
process(delete)
quote('"')
reduce
norent
resexp
rules(ibm)
rules( byname)
rules(nodecsize)
rules( elseif)
rules(noevendec)
rules(nogoto)
rules(nolaxbif)
rules(nolaxctl)
rules(nolaxdcl)
rules(nolaxdef)
rules(nolaxif)
rules(nolaxinout)
rules(nolaxlink)
rules(nolaxmargins(xnumeric))
rules(nolaxpunc)
rules( laxqual)
rules(nolaxsemi)
rules(nolaxstg)
rules(nolaxstrz)
rules(nomulticlose)
rules(nounref)
scheduler
semantic
service('')
source
spill(512)
static(full)
stmt
nostorage
syntax
sysparm('')
system(mvs)
test(all,sym)
notest
tune(7)
usage(round(ibm))
usage(unspec(ibm))
widechar(bigendian)
window(1950)
writable
xref(s)
and change the
into
Code: Select all
pp(macro('case(asis)') SQL('RTFM for all six zillion SQL options'))
And then add all required extra datasets to the JOB, such as the DBRMLIB, etc.
And for what it's worth Enterprise PL/I V3.7 is no longer supported, which indicates that you are probably not doing this in a corporate environment.