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;
我已经编写了一个查询,用于为内部网站构建一些 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;