python - 亚马逊 Redshift : How can I convert a 15 char Salesforce Id value into an 18 char Id value

标签 python amazon-web-services salesforce amazon-redshift

我将 SalesForce 数据保存在 Amazon Redshift 数据库中。 我想在 Redshift 上创建一个函数,将 SalesForce 15 字符 ID 转换为 18 字符 ID。我发现这个主题指导了如何:

salesforce id - How can I convert a 15 char Id value into an 18 char Id value? - Salesforce Stack Exchange

但是这些函数中没有一个在 Redshift 上运行,我不能使用它\在 Amazon Redshift 数据库上创建类似的函数。 (不得不说我很新@这个。

有人可以提供适用于 Redshift 的代码吗?

最佳答案

哦,好问题!

我在这里找到了一些转换代码:

我用它来创建 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/

相关文章:

perl - 使用 perl 获取文件和带前缀的文件并将其上传到 s3

amazon-web-services - cloudfront 不支持自定义来源的 CORS 吗?

ruby-on-rails - 未在 Rails 中为此组织启用 REST API(使用 databasedotcom gem 的 Salesforce API)

salesforce - Batch 类 Apex 中的执行困惑

python - 将字符串拆分为最大长度 X 的片段 - 仅在空格处拆分

python - 如何在没有 GPU 的情况下运行 tensorflow?

amazon-web-services - 如何将 kubernetes LoadBalancer Ingress URL 发布到 aws route53

Salesforce 身份验证失败

python - C++-Python 互操作 : Marshalling data faster

python - AttributeError:计算两点之间的距离