Seite 1 von 1

PostgreSQL und regexp_replace()

Verfasst: Mi, 04. Aug 2021 16:07
von xdragon2009
Hi,

wenn ich folgenden SELECT Befehl direkt auf dem SQL Server ausführe, klappt es. Wenn ich ihn allerdings über Xbase++ ausführe, kommt ein Fehler. Kann mir jemand sagen, wieso?
cTour := "SELECT * FROM "+cDbTour+" ORDER BY TIME, KGA, regexp_replace(PZ, '[^0-9]', '', 'g')::int"

Fehlermeldung:
oError:args :
-> VALTYPE: U VALUE: NIL
oError:canDefault : Y
oError:canRetry : N
oError:canSubstitute: Y
oError:cargo : {NIL, -1, syntax error at or near "NULL"
LINE 1: ...DER BY TIME, KGA, regexp_replace(PZ, '[^0-9]', '', 'g')NULL;
^}
oError:description : syntax error at or near "NULL"
LINE 1: ...DER BY TIME, KGA, regexp_replace(PZ, '[^0-9]', '', 'g')NULL;
^
oError:filename :
oError:genCode : 9001
oError:operation : ABSTRACTSQLSTATEMENTBUILDER:EXECUTEQUERY
oError:osCode : 0
oError:severity : 2
oError:subCode : -1
oError:subSystem : Remote SQL dacSession
oError:thread : 1
oError:tries : 0

Re: PostgreSQL und regexp_replace()

Verfasst: Mi, 04. Aug 2021 17:30
von Werner_Bayern
Servus,

vermutlich der cast bei der Regular-Expression: 2 Doppelpunkte statt 1?

Blödsinn, ein cast braucht 2 Doppelpunkte...

Re: PostgreSQL und regexp_replace()

Verfasst: Do, 05. Aug 2021 8:18
von xdragon2009
Problem gelöst :D

Xbase übersetzt den Cast nicht. Habe als Lösung die SQL Cast Funktion verwendet.

Re: PostgreSQL und regexp_replace()

Verfasst: Do, 05. Aug 2021 13:43
von Werner_Bayern
Danke für die Info. Also funktioniert der Cast auf eine Funktion nicht. Gut zu wissen. Solltest an Alaska melden.