Pervasive 是否具有用于 URL 编码的 SQL 函数?

Does Pervasive Have a SQL Function for URL Encoding?

我已经编写了一个查询,用于为内部网站构建一些 URL,但是一些 URL 不起作用,因为它们包含需要 URL encoded。我试图避免编写脚本(在 SQL 之外)来执行 URL 编码;我希望数据库改为执行 URL-编码,这样我就可以直接将数据(按原样)导出到 csv 文件中。

例如,我可以很容易地只编码一个字符。在这里,我将 & 编码为 %26:

select
     customer_id 
    ,customer_name
    ,'https://intranet.local/customer/?id=' + replace(customer_id,'&','%26') as url
from customer

但是,这种方法在编码多个字符时变得相当冗长。

是否有 function in Pervasive 13 可以进行 URL 编码?

根据 here 的答案,您可以使用以下方法创建一个函数:

CREATE FUNCTION urlencode(:description char(200))
RETURNS char(200)
AS
BEGIN
  SELECT 
   Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(
   Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(
   Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(
   Replace(RTRIM(:description)
       ,'%','%25')       ,'&','%26')       ,'$','%24')       ,'+','%2B')
       ,',','%2C')       ,':','%3A')       ,';','%3B')       ,'=','%3C')
       ,'?','%3D')       ,':','%3F')       ,'@','%40')       ,'#','%23')
       ,'<','%3C')       ,'>','%3E')       ,'[','%5B')       ,']','%5D')
       ,'{','%7B')       ,'}','%7D')       ,'|','%7C')       ,'^','%5E')
       ,' ','%20')       ,'~','%7E')       ,'`','%60')       ,'*','%2A')
       ,'(','%28')       ,')','%29')       ,'/','%2F')       ,'\','%5C')
       ,' ','%20') INTO :description;
  RETURN :description;
END;