plsql转义非url安全字符

时间:2016-02-04 00:00:08

标签: sql plsql oracle11g

我正在使用plsql向REST服务发送一些http请求。部分请求是一些纯文本用户数据,可以包含任何字符。我需要转义#,&amp ;,等字符?我如何逃避这些非安全的网址字符?我没有代码,所以我不能使用第三方库。

1 个答案:

答案 0 :(得分:1)

你看过UTL_URL.ESCAPE功能吗?

基本上,包UTL_URL有两个函数,为URL字符提供转义和unescape机制。在使用URL之前,使用转义函数转义URL以通过UTL_HTTP包获取网页。在从URL中提取信息之前,使用unescape函数来转义转义的URL。

例如:

SELECT UTL_URL.ESCAPE('http://www.acme.com/a url with space.html') FROM DUAL;

返回:

  

http://www.acme.com/a%20url%20with%20space.html

更多示例here

您也可以部分使用它:

SELECT 'http://www.acme.com/search?check=' || UTL_URL.ESCAPE('some data'); FROM DUAL;