urlencode只有内置函数

Kev*_*Kev 3 sql postgresql urlencode

不使用plpgsql,我试图在pgsql SELECT语句中对给定文本进行urlencode.

这种方法的问题:

select regexp_replace('héllo there','([^A-Za-z0-9])','%' || encode(E'\\1','hex'),'g')
Run Code Online (Sandbox Code Playgroud)

...是编码函数没有传递regexp参数,除非有另一种方法从实际工作的替换表达式中调用函数.所以我想知道是否有一个替换表达式,它本身可以将匹配编码为十六进制值.

可能存在其他功能组合.我以为会有一个聪明的正则表达式(那可能仍然是答案),但我找不到它.

Kev*_*Kev 6

select regexp_replace(encode('héllo there','hex'),'(..)',E'%\\1','g');
Run Code Online (Sandbox Code Playgroud)

但这并不会使字母数字字符成为人类可读的字符.