Vern, I appreciate your comments.  Currently I'm planning to handle up
to five values, so the list wouldn't be overly large.  I'd already
implemented a series of CASE statements that works fine but I worry
about performance (I'll have at least four IN's, not all of which will
be used on any one statement).

In thinking about this, though, dynamic SQL might be the better option
because I'll have a complex selection routine with multiple
multi-value IN's (interactive user input).  There will be cases where
none of the selection elements has a value, so I'd want to eliminate
that test completely, I can do this with a CASE in embedded SQL or
with RPG code in dynamic.

This leads to the question of examining the evaluated statement: if an
embedded CASE generates bloated code, I'd build what I need
dynamically.  I'll check the Redbook.

Thanks again,
Reeve


On Wed, 05 Jan 2005 08:00:14 -0600, Vernon Hamberg <vhamberg@xxxxxxxxxxx> wrote:
> You need to use a list of host variables. At least, that is what the doc
> suggests. You would need as many as you ever need, say 50 or 52 in this
> case. So something like
> 
> in (:state01, :state02, ... ,:state50)
> 
> You'd use as many as you need and put a dummy value, say x'FFFF' in the
> remaining host variables. that value almost guarantees no match. There is a
> performance hit for items not found, as the entire list will need to be
> searched.
> 
> AFAIK, the only way to get a variable list is to use dynamic SQL, not
> embedded. And host variables cannot be used in dynamic SQL, IIRC.
> 
> Ops Nav provides the ability to watch SQL. Or use the database monitor -
> STRDBMON gets it going. The results go into a PF you specify. The record
> structures are ugly - each record has a type, and there are join fields
> between records. There is a Redpaper or whatever at
> http://www.redbooks.ibm.com/redpapers/pdfs/redp0502.pdf
> 
> HTH
> Vern
> 
> At 02:10 AM 1/5/2005, you wrote:
> >I'm trying to format a host variable to support the IN keyword (I'm
> >using hard-coded IN statements without problem).  The hard-coded
> >expression would be "...where type in('FL','WA','PA')"; I want to
> >build the IN keyword predicate dynamically for eventual use in a CASE
> >statement.
> >
> >My prototype program has this code:
> >"Declare Input cursor for select order, state from Orders where state
> >in :state_list"
> >
> >It compiles but ti doesn't work
> >
> >I can built a series of CASE statements to get around this, but I have
> >one of those feelings (again) that I've overlooked something.
> >
> >I'd greatly appreciate a working example of using a host variable with
> >the IN keyword.
> >
> >Also, is there any way I can view the evaluated SQL statement?  I'm
> >trying various combinations of things but I'm not getting any SQL
> >errors; it would be handy to see what SQL is trying to do.
> >
> >Thanks,
> >Reeve
> >--
> >This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
> >To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> >To subscribe, unsubscribe, or change list options,
> >visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> >or email: MIDRANGE-L-request@xxxxxxxxxxxx
> >Before posting, please take a moment to review the archives
> >at http://archive.midrange.com/midrange-l.
> 
> --
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
> To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
> 
>

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.