在Postgresql中转义反斜杠
发布时间:2020-12-13 16:02:54 所属栏目:百科 来源:网络整理
导读:我正在尝试在 Postgresql中编写一个解析文件路径的sql函数. 我想只返回文件名. 我无法在函数中获得准确的文本字符串. 这是功能: Function: job_page("inputText" text)DECLARE $5 text;BEGIN $5 = quote_literal("inputText"); return $5;END 当我运行这个
我正在尝试在
Postgresql中编写一个解析文件路径的sql函数.
我想只返回文件名. 我无法在函数中获得准确的文本字符串. 这是功能: Function: job_page("inputText" text) DECLARE $5 text; BEGIN $5 = quote_literal("inputText"); return $5; END 当我运行这个: select job_page('CAD_SVRCADJOBS7512-CEDARHURST ELEMENTARY SCHOOL7512-20.DWG') 我得到这个结果: "E'CAD_SVRCADJOBSé2-CEDARHURST ELEMENTARY SCHOOLé2-20.DWG'" Postgresql解释斜杠后跟某些字符作为特殊字符. 我怎么逃避? 解决方法
您应该使用转义字符串语法:
select E'CAD_SVRCADJOBS7512-CEDARHURST ELEMENTARY SCHOOL7512-20.DWG'; CAD_SVRCADJOBS7512-CEDARHURST ELEMENTARY SCHOOL7512-20.DWG 这无论如何都适用. 或者您可以设置standard_conforming_strings = on并使用: select 'CAD_SVRCADJOBS7512-CEDARHURST/ ELEMENTARY SCHOOL7512-20.DWG'; CAD_SVRCADJOBS7512-CEDARHURST/ ELEMENTARY SCHOOL7512-20.DWG 只有在pl / pgsql函数中为exec调用构造查询时,才应使用quote_literal函数.要在客户端构造查询,您应该使用客户端的库引用函数,如libpq中的PQescapeStringConn或PHP中的pg_escape_string.但最好的选择是使用预准备语句并使用字符串作为参数,这将消除所有引用,也是much safer. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |