我将 SalesForce 数据保存在 Amazon Redshift 数据库中。 我想在 Redshift 上创建一个函数,将 SalesForce 15 字符 ID 转换为 18 字符 ID。我发现这个主题指导了如何:
但是这些函数中没有一个在 Redshift 上运行,我不能使用它\在 Amazon Redshift 数据库上创建类似的函数。 (不得不说我很新@这个。
有人可以提供适用于 Redshift 的代码吗?
最佳答案
哦,好问题!
我在这里找到了一些转换代码:
- Salesforce.com ID Converter allows you to convert 15 digit, case-sensitive IDs to an 18 digit, case-safe version for use with Salesforce.com records.
- sf15to18/sf15to18.py at master · mslabina/sf15to18
我用它来创建 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')
好像可以,但是请测试一下!
关于python - 亚马逊 Redshift : How can I convert a 15 char Salesforce Id value into an 18 char Id value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51971276/