[英]Azure Data Factory Oracle Source with date variable
我正在構建一個邏輯數據倉庫。 源是 Oracle,目標是數據湖。 初始加載是通過 ADF 從 On Prem Oracle 服務器讀取數據和創建用作數據庫的 Parquet 文件完成的。 現在我需要添加增量數據加載的功能。
1- 我添加了一個查找開始,其中查詢 LDW 以獲取最后日期。
2- 使用設置變量活動來設置帶有日期的變量
3- 復制活動以讀取從日期 + 1 到 SYSDATE -1 的數據。 此任務失敗,因為我無法正確構建 where 子句(我是 ADF 的新手)。 我目前的 Where 條款是這樣的
WHERE TO_DATE(si.schedule_date, 'YYYYMMDD')
BETWEEN to_date('formatDateTime('@{variables('LastDate')}', 'yyyyMMdd')','YYYYMMDD')
AND SYSDATE-1
我得到的錯誤是這樣的:
{
"errorCode": "2200",
"message": "Failure happened on 'Source' side. ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR [HY000] [Microsoft][ODBC Oracle Wire Protocol driver][Oracle]ORA-00907: missing right parenthesis,Source=Microsoft.DataTransfer.ClientLibrary.Odbc.OdbcConnector,''Type=System.Data.Odbc.OdbcException,Message=ERROR [HY000] [Microsoft][ODBC Oracle Wire Protocol driver][Oracle]ORA-00907: missing right parenthesis,Source=msora28.dll,'",
"failureType": "UserError",
"target": "Copy data1",
"details": []
}
任何幫助將不勝感激。 我被困在這個問題上很長時間並試圖擺脫混亂。 謝謝
似乎缺少一個括號。 確保正確關閉括號。
而且,我假設計划日期是一個日期列..試試這個?
@Concat('選擇查詢部分', 'WHERE si.schedule_date BETWEEN ', formatDateTime({variables('LastDate')}, 'yyyyMMdd') , ' AND SYSDATE-1')
該錯誤表明 ADF 解析您的 oracle 查詢后存在一些語法錯誤。
你可能想嘗試這樣的事情:
SELECT * FROM schedule_item si
WHERE TO_DATE(si.schedule_date, 'yyyymmdd') BETWEEN
TO_DATE('@{variables('LastDate')}', 'yyyymmdd') AND SYSDATE-1
確保@{}
與variables('LastDate')
相關聯; 並且表達式是單引號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.