我将SalesForce数据保存在Amazon Redshift DB上。 我想在Redshift上创建一个将SalesForce 15 Char ID转换为18 Char ID的函数。我发现此主题为如何提供指导:
但是这些功能都不能在Redshift上使用,我不能使用\在Amazon Redshift DB上创建类似的功能。 (不得不说,我在这方面很新。
有人可以在Redshift上使用代码吗?
答案 0 :(得分:2)
哦,很好的问题!
我在这里找到了一些转换代码:
我用它来创建Amazon Redshift用户定义函数(UDF):
CREATE OR REPLACE FUNCTION f_salesforce_15_to_18 (id varchar)
RETURNS varchar
STABLE
AS $$
# Code comes from: https://gist.github.com/KorbenC/7356677
for i in xrange(0, 3):
flags = 0
for x in xrange(0,5):
c = id[i*5+x]
#add flag if c is uppercase
if c.isupper():
flags = flags + (1 << x)
if flags <= 25:
id += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[flags]
else:
id += '012345'[flags - 26]
return id
$$ LANGUAGE plpythonu;
运行:
SELECT f_salesforce_15_to_18 ('500A000000D34Xf')
似乎可行,但请对其进行测试!