|
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-2024 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.