|
I'm slowly learning SQL on a need to know basis. I needed to do a
conditional update so I tried the case statement. My query looks like this:
update &file
set field1 = case when (field2 = '0')
then 'Final Totals'
when (field2 = '1')
then 'Store Totals'
else field1
end
Works great interactively with the substitution variable, but dies in batch
with a message that says: " Message . . . . : Global variable prompting is
not allowed in batch mode. Cause . . . . . : You tried to use the
variable
"file " before it was set. Prompting for
variables
cannot be done in batch mode. " It goes on to advise using the setvar
parm, which I did in the CL. The strqmqry statement was:
DCL VAR(&UPDFILE) TYPE(*CHAR) LEN(20) +
VALUE('LIBRARY/FILENAME')
STRQMQRY QMQRY(QRYNAME) SETVAR((FILE +
&UPDFILE))
If I run a query with substitution variables defined as above in batch
something like :
update &file set &set where &where
it works fine.
My workaround was to hard code the file name in the query. Am I doing
something wrong?
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.