datastage Transformer中使用IsValidDate函數會引發警告

問題

使用IsValid函數檢查日期是否有效時,如果日期無效,該函數將引發警告。在DataStage 7版本和8.1版本中,沒有警告,但在v8.5及更高版本中,出現警告。
示例:

場景1:
    
    StageVar = 20141231 
    If IsValidDate("2014-12-31")
    Then "Valid"
    else "InValid"
    此時無日誌警告
場景2:
    StageVar = 20143112 
    If IsValidDate("2014-31-12")
    Then "Valid"
    else "InValid"
    此時將產生警告信息"Conversion error calling conversion routine date_from_ustring data may have been lost"
    
場景3:
    StageVar = 20143112 
    If IsValidDate(StringToDate( "2014-31-12" ,"%yyyy-%mm-%dd")) 
    Then "Valid"
    else "InValid"
    此時將產生警告信息" APT_CombinedOperatorController,1: Conversion error calling conversion routine date_from_string data may have been lost"

原因
使用 IsValidDate或IsValid("date",StringToDate(string,"%mm/%dd/%yyyy") )會出現警告消息,因爲它試圖在實際檢查之前將無效的字符串值轉換爲日期。

解決問題
要解決此問題,請使用以下函數:
IsValid ("date", String1[1,4]:"-":String1[5,2]:"-":String1[7,2])

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章