簡體   English   中英

帶有日期變量的 Azure 數據工廠 Oracle 源

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM