1

因此,我尝试使用 python simple_salesforce 库从 salesforce 查询:查询是一个 Select,如下所示:

sf.bulk.instance.query("SELECT  field_1, field_2 from table__c WHERE name IN ('1', '2' ...2000 values)")

我传递的元组有大约 2000 个值。因此,当我尝试使用 sf.query 时,它会返回 414 或连接被中止(有时它提供的 URI 太长)。然后我尝试使用 sf.bulk 可以达到1300个值,但之后它给出了index error: list index out of range。这是从_get_batch_results提出的。

现在,我已将元组拆分为多个部分并对 sf.bulk 查询进行了多次查询,我认为这效率不高。任何人都可以为我提供解决方案吗?

任何帮助表示赞赏!

4

1 回答 1

0

您收到此错误是因为您的查询太长,当然这是由于您的WHERE ... IN条件很长。

我的建议是将您在IN临时表中的值重写为两个表之间的连接。

如果您可以使用值列表创建第二个表table__d,那么您的查询可能如下所示:

SELECT field_1, field_2 
  FROM table__c 
 WHERE name IN (SELECT name from table__d)

或者,您可以将查询拆分为 2 个查询,每个查询有 1000 个值,甚至可以分成更小的块。

于 2019-09-25T07:34:19.747 回答