letzten Beitrag gelesen - weitergemacht:
weitere Tests haben ergeben, dass das Problem entsteht, wenn der Wert ein char bzw. varchar ist.
Wird in der where-Klausel der Vergleichswert per
übergeben, klappt es.
Also das
Code:
select
'Test'
from rdb$database
where
:parameter = cast('*' as varchar(8191))
Liefert als Ergebnis
'Test'
Während das
Code:
select
'Test'
from rdb$database
where
:parameter = '*'
Bei einem Parameterwert mit Länge größer 1 (z.B. 'axf') den Fehler
Code:
Incompatilbe column/host variable data type.
Dynamic
SQL Error.
SQL error code = -303
arithmetic
exception, numeric overflow or string truncation.
string right truncation.
liefert. Offenbar wird der Datentyp des Parameters anhand der Bedingung in der where-Klausel definiert.