Open Query File

Business Intelligence
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Q: I'm new to the AS/400 from the S/36. I'm trying to use the OPNQRYF command in a CL program to select records that do not contain an asterisk (*) anywhere within the order number field. I tried to build the select statement using *NE with the wildcard option. The CL compiled fine; but when I ran it, I received a CPF message with an error on CL command. I don't want to sort the file with an RPG program because of time constraints. The message that ended the CL was CPF9899 (Error occurred during processing of command), but the message in the job log before that was CPD3137 (Use of %WLDCRD on QRYSLT parm not valid). The QRYSLT is as follows:

 'CUSTNO *NE %WLDCRD("LE***")' 

The message text states that the error can be caused by "Specifying %WLDCRD built-in function somewhere other than the second operand of an *EQ operator." Does this mean that *NE cannot be used with %WLDCRD?

A: You can only use *EQ with %WLDCRD, %VALUES and %RANGE. To negate one of these functions, use the *NOT logical operator.

Also, the asterisk is the default wildcard character which stands for zero or more characters, so you'd have to tell OPNQRYF to use some other character (maybe an ampersand instead of an asterisk), like this.

 QRYSLT('*NOT (CUSTNO *EQ + %WLDCRD("&*&" "_&"))') 

However, an easier way to do what you're trying to do (find all orders where CUSTNO does not have an asterisk in it) is to use the contains operator (*CT). QRYSLT('*NOT (CUSTNO *CT "*")')

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$0.00 Raised:
$