-
okay das wars, vielen Dank
mit folgenden Select klappts zu voller Zufriedenheit:
Code:
select * from MDPROP03
where upper(cast(TITITL as graphic(60) ccsid 1200))
like trim(cast('%TOP%' as graphic(60) ccsid 1200))
Eine Umstellung auf HostVars werde ich nun als nächstes in Angriff nehmen.
-
Zu beachten ist aus Performancegründen dass Funktionen auf Felder in der Where-Klauses wie UPPER, CAST u.ä. die Verwendung eines Indexes verhindern.
-
a) dös is hier Wurscht (like %irgendwas führt eh zum full table scan)
b) wat mutt dat mutt
c) eine halbwegs intelligente Query Engine sollte sich da (hoffentlich) ratz fatz den erforderlichen Zugriffspfad von einem (hoffentlich) vorhandenen Index ableiten können.
D*B
 Zitat von Fuerchau
Zu beachten ist aus Performancegründen dass Funktionen auf Felder in der Where-Klauses wie UPPER, CAST u.ä. die Verwendung eines Indexes verhindern.
-
Habe da Programm nun auf Hostvar umgestellt und es funktioniert wunderbar mit Sonderzeichen, Kyrillisch und Chinesisch.
Das einzige was mich etwas erstaunt hat war, das die erste Hostvar nicht mit LIKE verwendet werden darf.
Sondern das z.B. erst ein direkter Vergleich mit einem Tabelleninhalt erfolgen muss und dann das Like mit HostVar folgen darf.
Warum auch immer? Es funktioniert jetzt wie gewünscht.
Vielen Dank für eure Hilfe.
-
Like mit Hostvar verwende ich regelmäßig.
Dazu 2 Varianten:
D MyLikeVar s 100 varying
D My2LikeVar s 100
MyLikeVar = '%' + %trim(Irgendwas) + '%';
// direkte Verwendung in Like möglich
exec sql
declare MyCursor Cursor for
select ....
where Field like : MyHostVar;
My2LikeVar = '%' + %trim(Irgendwas) + '%';
// hier stehen Leerzeichen am Ende
exec sql
declare MyCursor Cursor for
select ....
where Field like trim(: My2HostVar);
-
Hier noch eine 3. Variante:
Es ist völlig egal, ob die Hostvariable fixe oder variable Länge hat oder ob am Anfang oder Ende noch irgendwelche *Blanks rumstehen. Achso und die Prozentzeichen muss man auch nicht in den String reinpfriemeln.
PHP-Code:
exec sql
declare MyCursor Cursor for
select ....
where Field like '%' concat Trim(:HostVar) concat '%';
Birgitta
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks