0
私はHeroku Connect(Salesforceと統合されています)に取り組んでいます。私の列の1つに「Multipicklist」というタイプがあります。Postgresの "Multipicklist"型を照会する方法
私はpsycopg2を使用して、Pythonで作業しています。
複数の種類の列の1つの変数値を照合する正しい方法は何ですか?
例は:
セイcustom__c
カラムはmultipicklistcol__c
呼びかけています。 custom__c
の行があり、multipicklistcol__c
の値は{'A','B','C'}
です。
変数がparam = 'A'
の場合、custom__c
行をparam
を使用して選択するにはどうすればよいですか?
私はいくつかの異なるアプローチ、私のためにその仕事のどれを試してみました:
cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) <@ multipicklistcol__c;""", (param,))
cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) IN multipicklistcol__c;""", (param,))
cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE multipicklistcol__c includes (%s);""", (param,))
cur.execute("""SELECT name, sfid FROM salesforce.custom__c WHERE (%s) = ANY(multipicklistcol__c)""", (param,))
列がテーブルにどのように定義されているかを表示できますか? [this](https://learn.capstorm.com/copystorm-menu/storm-frequently-asked-questions/item/165-copystorm-faq-datatype-mapping)によると、MULTIPICKLISTはデータベース内でVARCHARとして表現され、あなたの例では配列のように見えます – harmic
私は実際にそのリソースを見ました、ありがとう! Herokuでは、このタイプは「multipicklist」として明示的に定義されていますが、これはSalesforceでうまくいくかもしれません。列を選択すると無条件にいくつか興味深い結果が得られました。データを繰り返して、文字列の文字を反復処理するような値( 'xのデータ:print x')を出力しました。しかし、実際にはそれを操作しようとしたタプルオブジェクトが返されました。だから私の関連する質問: 'multipicklist'がタプルとして扱われていることを知っていれば、どうやって上のような質問をしますか? – friendoflore
そして最後に私が上記で試した( 'ANY()')は、 'multipicklist'が配列ではないので無効であると明示しました。 – friendoflore