Python Amazon Redshift:如何将15个字符的Salesforce Id值转换为18个字符的Id值
我在Amazon Redshift DB上保存SalesForce数据。 我想在Redshift上创建一个函数,将SalesForce 15个字符的ID转换为18个字符的ID。我找到了这个主题,它给出了如何: 但是这些函数中没有一个在Redshift上工作,我无法使用它\在Amazon Redshift DB上创建类似的函数。(不得不说我对这个很陌生 有人能有一个红移代码吗?哦,好问题 我在这里找到了一些转换代码:Python Amazon Redshift:如何将15个字符的Salesforce Id值转换为18个字符的Id值,python,amazon-web-services,salesforce,amazon-redshift,Python,Amazon Web Services,Salesforce,Amazon Redshift,我在Amazon Redshift DB上保存SalesForce数据。 我想在Redshift上创建一个函数,将SalesForce 15个字符的ID转换为18个字符的ID。我找到了这个主题,它给出了如何: 但是这些函数中没有一个在Redshift上工作,我无法使用它\在Amazon Redshift DB上创建类似的函数。(不得不说我对这个很陌生 有人能有一个红移代码吗?哦,好问题 我在这里找到了一些转换代码: 我用它创建了一个Amazon红移用户定义函数(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')