× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Could it be your variable @pattern is defined as fixed length character
field?
If either use a varying length variable or pad your fixed length variable
with %-sign.

But my favorite solution is the following, without modifying the original
variable:

SELECT ....
FROM ...
WHERE YourColumn like '%' concat Trim(:YourVariable) concat '%'
...

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"

-----Ursprüngliche Nachricht-----
Von: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von
Denis Robitaille
Gesendet: Friday, 13.2 2015 22:49
An: MIDRANGE-L@xxxxxxxxxxxx
Betreff: SQL RPG Where clause question

Hello all,

I want to extract record from a file where a field matches a pattern. To do
so, I use the « like » instruction in the where clause. Here is a strip down
version:

@patern = '%' + %trim(@filter) + '%';
exec sql declare cur_next_filter cursor for
select ch1 from nozzzdp
where dsl like :@patern ;
...
exec sql fetch from cur_next_filter into :ds_key;

The value of the @filter variable is "A" (I want everything with an A in the
dsl vaviable)

This does not retrieve any value (sqlstt = 2000)

I then tried the following:

@patern = '''' + '%' + %trim(@filter) + '%' + ''''; exec sql declare
cur_next_filter cursor for
select ch1 from nozzzdp
where dsl like :@patern;
...
exec sql fetch from cur_next_filter into :ds_key;

I tough that maybe I needed the pattern string to be in quotes but no luck.

So, to make sure that there was no problem somewhere else, I tried:

exec sql declare cur_next_filter cursor for
select ch1 from nozzzdp
where dsl like '%A%' ;
...
exec sql fetch from cur_next_filter into :ds_key;

This works and returns some value.

Does that mean that I cannot use variable with the "like" statement when
using a cursor?

Any help will be appreciated


[cid:image001.jpg@01D047AC.F71A7E40]<http://www.cascades.com/_home>

Denis Robitaille
Chef de service TI
Cascades Centre des technologies,
une division de Cascades Canada ULC
412 Marie Victorin
Kingsey falls(Québec) Canada J0A 1B0
T : 819 363 6130

Pour toute information sur les événements techniques, veuillez consulter
notre calendrier Groupwise CAS_CALENDRIER_TI

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

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.