Ich habe diese SQL-Abfrage (in T-SQL):Npgsql: Kann es ODBC Espace Sequenzen erkennen?
--DECLARE @strTerm varchar(300)
--SET @strTerm = 'c'
SELECT TOP 10
USR_ID
,USR_UserName
FROM T_Benutzer
WHERE (1=1)
--AND {fn LCASE(USR_UserName)} LIKE {fn LCASE(@strTerm + '%')}
AND {fn LCASE(BE_User)} LIKE {fn LCASE({fn CONCAT(@strTerm, '%')})}
--AND BE_Hide = 0
AND BE_Hide = 'false'
ORDER BY USR_UserName
Dann habe ich eine Automagic regex Transformation, die I einschalten kann, um die oben Syntax mit PostgreSQL kompatibel zu machen, die die folgende Ausgabeanweisung erzeugt von der Eingangsrechnung:
SELECT
USR_ID
,USR_UserName
FROM T_Benutzer
WHERE (1=1)
AND {fn LCASE(BE_User)} LIKE {fn LCASE({fn CONCAT(@strTerm, '%')})}
AND BE_Hide = 'false'
ORDER BY USR_UserName
LIMIT 10
ich dachte, das sollte die meisten Dinge zum Laufen zu bringen auf PostgreSQL ausreicht, aber jetzt merke ich, dass Npgsql nicht ODBC-Escape-Sequenzen ({fn was auch immer()}) erkennen.
Gibt es eine Option in den Npgsql Connectionstring-Einstellungen, die ich einschalten kann, oder in Postgres selbst?
Oder bin ich Pech und muss eine ODBC-Escape-Funktionen ersetzen Funktion schreiben?
Beachten Sie, dass ich nicht den ODBC-Treiber selbst verwenden möchte, da die Mono-Implementierung des Wrappers um ODBC von fragwürdiger Qualität ist. –