Hi there Ashish,

I have a sql statment like

select * from mytable where line in ('ABC', 'XYZ')

where this SQL statement is going to extact all rows
where line is ABC and XYZ,

but now the problem is i do not know if there are
going to be only one line or 2 or 10, so i thought i
would define the sql as

select * from mytable where line in ?

and then i created a string like ('ABC', 'XYZ') and
passed it as input parameter, but it does now work,

Any ideas for a work around this solution

There isn't really a graceful was to solve this problem. If you really want
it variable then forget parameter markers completely and put your filters in
a file and use that as a filter list:

select * from mytable where line in (select distinct mylinefilters from

Otherwise you will simply have to guess the maximum number of parameter
markers you may ever need and simply repeat your last list item until you
have used them all. Pretty easy to code in a for loop and the database is
smart enough to tell that:

select * from mytable where line in ('ABC', 'XYZ')

is exactly the same as:

select * from mytable where line in ('ABC', 'XYZ', 'XYZ', 'XYZ')

So you could use four parameter markers even if you will probably only use
two parameter markers 98% of the time. They're just placeholders after all.


Larry Ducie

As an Amazon Associate we earn from qualifying purchases.

This thread ...


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

This mailing list archive is Copyright 1997-2022 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.