在Postgresql中转义反斜杠

在Postgresql中转义反斜杠,第1张

概述我正在尝试在 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     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中转义反斜杠所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存