私はこのSQLクエリを持っています(T-SQLで):
--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
次に、スイッチをオンにできるautomagic regex変換を使用して、最上位の構文をPostgreSQLと互換性のあるものにします。これにより、入力ステートメントから次の出力ステートメントが生成されます。
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
PostgreSQLでほとんどのものを動作させるにはこれで十分だと思いましたが、NpgsqlがODBCエスケープシーケンス({fnwhatever()})を認識しないことに気付きました。
Npgsql接続文字列設定でオンにできるオプション、またはPostgres自体にオプションはありますか?
または、運が悪かったので、ODBCエスケープ関数の置換関数を作成する必要がありますか?