Parameter Marker und LIKE
- Dieses Thema hat 0 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 17 Jahre, 6 Monaten von
Anonym.
-
AuthorPosts
-
4. April 2006 um 11:45 Uhr #2678
AnonymGastHallo zusammen,
ich habe ein Problem bei der Verwendung von Parameter Markern in Verbindung mit LIKE. Das Programm wurde in C++ unter CICS geschrieben.
Der SQL-String sieht bspw. folgendermaßen aus:SELECT NACHNAME, VORNAME, PERSNR, FROM MITARBEITER WHERE NACHNAME LIKE CAST(? AS CHAR(30))
Da ich nicht weiß, wieviele Parameter Marker vorhanden sind lese ich mit
EXEC SQL DESCRIBE INPUT STMT1 INTO :*sucheDa;
die Infos zu den Par. Mark. in die SQLDA.
So, und jetzt das eigentliche Problem:
Wenn ich die SQLDA (in diesem Fall sucheDa) anschaue, hat obiger Par. Mark. den SQLTYPE 456, statt 453 und die Länge ist 4000 statt 30.
Habe ich ein Statement mit...NACHNAME=CAST(? AS CHAR(30))
funktioniert es richtig mit SQLTYPE 453 und Länge 30.
Hat vielleicht irgendjemand einen Tipp an was das liegen könnte?
In irgendeinem Manual hab ich gelesen, dass VARCHAR(4000) bei LIKE in Verbindung mit untyped Parameter Markern gesetzt wird. In meinem Fall sind diese aber typed. Ich hab es übrigens nochmal überprüft, es handelt sich bei NACHNAME um ein CHAR(30)-Feld.Achja, vielleicht noch kurz zur Info, es handelt es ich um DB2 V8 (mit CICS 3.1 auf z/OS 1.7).
Vielen Dank für die Hilfe!
Gruß
Beachy
-
AuthorPosts
You must be logged in to reply to this topic.