Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Amazon Redshift:如何将15个字符的Salesforce Id值转换为18个字符的Id值_Python_Amazon Web Services_Salesforce_Amazon Redshift - Fatal编程技术网

Python Amazon Redshift:如何将15个字符的Salesforce Id值转换为18个字符的Id值

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): 它似乎工作,

我在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')