Salesforce.comとSQL Server(基本的にリンクサーバーを追加)を統合するためにDBAmpを使用し、OPENQUERYを使用してSFデータに対してクエリを実行しています。SOQL - 所有者のロケールに日付を変換
私は機会に対して何らかのレポートを作成しようとしており、機会所有者の現地日時(つまり、ユーザーがsalesforceに表示される日時)に機会の作成日を返したいとします。
dbamp設定では、日付はUTCに強制されます。
私はいくつかの助けになるかもしれないと思った日付関数(Salesforceのドキュメント)に遭遇しましたが、それを証明しようとするとエラーが発生します。以下はconvertTimezoneの使用例です機能:
OLE DB provider "DBAmp.DBAmp" for linked server "SALESFORCE" returned message "Error 13005 : Error translating SQL statement: line 1:37: expecting "from", found '('". Msg 7350, Level 16, State 2, Line 1 Cannot get the column information from OLE DB provider "DBAmp.DBAmp" for linked server "SALESFORCE".
あなたは以下のようにOPENQUERYでSOQLの機能を使用することはできません:以下
SELECT HOUR_IN_DAY(convertTimezone(CreatedDate)), SUM(Amount)
FROM Opportunity
GROUP BY HOUR_IN_DAY(convertTimezone(CreatedDate))
は、エラーが返されているのですか?
SELECT
*
FROM
OPENQUERY(SALESFORCE,'
SELECT HOUR_IN_DAY(convertTimezone(CreatedDate)), SUM(Amount)
FROM Opportunity
GROUP BY HOUR_IN_DAY(convertTimezone(CreatedDate))')
UPDATE:私はちょうどビル・エマーソン(私は彼がDBAmp統合ツールの作成者であると信じて)といくつかの対応持っていた
:
をあなたが使用することができるはずSOQLなぜなら、なぜあなたは の解析に失敗したのかわかりません。私はテストケースをセットアップして報告します。
返信時に再度投稿を更新します。ありがとう
を集約関数を使用するときに「無効な数値」とOPENQUERY
私は実行している完全なOPENQUERYコードを追加しました。 – domager