我有这个 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
然后,我有一个可以打开的自动正则表达式转换,以使顶级语法与 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 转义序列({fn 不管()})。
我可以打开 Npgsql 连接字符串设置或 Postgres 本身中的任何选项吗?
还是我运气不好,必须写一个 ODBC 转义函数替换函数?