You're on the right track with apostrophes, this is always a problem with QM
queries.
I use a trick learned from this list, namely replacing quotes with another
parm. Let's say your qm query looks like this:
INSERT INTO yourLib/yourFile
SELECT * FROM yourLib/yourFile2
WHERE F1 = &q&DMD_C&q AND F2 = &q&DMD_P&q
Then your QM invocation would look like this:
STRQMQRY QMQRY(IMDMDCMPQM) SETVAR((DMD_C 001486) (DMD_P 001487) ('q' ''''))
Of course, you can effect this using many apostrophes in your CL, but this
seems cleaner to me.
Elvis
Celebrating 10-Years of SQL Performance Excellence
http://centerfieldtechnology.com/training.asp
-----Original Message-----
Subject: SQL works in iNav but not QMQRY
I've got a pretty long SQL statement that works in iSeries Navigator's
run SQL scripts, as well as in the 5250 STRSQL. However, it does not
work when compiled as a QMQRY. (We're using QM queries because we need
to pass a couple of parameters.)
Here are the messages I receive:
STRQMQRY QMQRY(IMDMDCMPQM) SETVAR((DMD_C 001486) (DMD_P 001487))
CONNECT to relational database S10297EC completed.
Current connection is to relational database S10297EC.
SET CONNECTION to relational database S10297EC completed.
Comparison operator = operands not compatible.
RUN QUERY command failed with SQLCODE -401.
RUN QUERY command ended due to error.
STRQMQRY command failed.
Connection to relational database S10297EC ended.
SQL cursors closed.
For the "comparison operator = operands not compatible," I receive no
additional information indicating which of several comparison operators
are in error. Also ran this variation, with the same (failing) results.
strqmqry qmqry(imdmdcmpqm) setvar((DMD_C '001486') (DMD_P '001487'))
Has anyone run into this and can provide some guidance? Again, the SQL
statement runs without error in iSeries Navigator and interactively via
STRSQL. Gives error when compiled as a QM query.
I can post the SQL if necessary but it's really long.
Thanks,
Loyd
As an Amazon Associate we earn from qualifying purchases.