我想只返回文件名.
我无法在函数中获得准确的文本字符串.
这是功能:
Function: job_page("inputText" text)DECLARE text;BEGIN = quote_literal("inputText"); return ;END
当我运行这个:
select job_page('\CAD_SVR\CADJOBS12-CEDARHURST ELEMENTARY SCHOol12-20.DWG')
我得到这个结果:
"E'\CAD_SVRCADJOBSé2-CEDARHURST ELEMENTARY SCHOolé2-20.DWG'"
Postgresql解释斜杠后跟某些字符作为特殊字符.
我怎么逃避?
解决方法 您应该使用转义字符串语法:select E'\CAD_SVR\CADJOBS\7512-CEDARHURST ELEMENTARY SCHOol\7512-20.DWG';\CAD_SVR\CADJOBS12-CEDARHURST ELEMENTARY SCHOol12-20.DWG
这无论如何都适用.
或者您可以设置standard_conforming_strings = on并使用:
select '\CAD_SVR\CADJOBS12-CEDARHURST/ ELEMENTARY SCHOol12-20.DWG';\CAD_SVR\CADJOBS12-CEDARHURST/ ELEMENTARY SCHOol12-20.DWG
只有在pl / pgsql函数中为exec调用构造查询时,才应使用quote_literal函数.要在客户端构造查询,您应该使用客户端的库引用函数,如libpq中的PQescapestringConn或PHP中的pg_escape_string.但最好的选择是使用预准备语句并使用字符串作为参数,这将消除所有引用,也是much safer.
总结以上是内存溢出为你收集整理的在Postgresql中转义反斜杠全部内容,希望文章能够帮你解决在Postgresql中转义反斜杠所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)