DataStage Basic(1)

Basic操作符:
 數學運算符:+, -, *, /
 關係操作符:=, <, >, <=, =>
 邏輯操作符:And, Not, Or
 連接操作符: ":"  --"The employee's name is" : lname : "," : fname
 截取字符串:String類型有這個屬性,直接在字符串後面加[],標明起始,即可截取字符串
              字符數組,從第一個開始,而不是從"0"開始。"String[star, length]"
              "APPL3245"[1,4] --> "APPL"
              "APPL3245"[5,2] --> "32"
 IF操作符:
  方法I: variable = If condition Then expression Else expression
   If Column1 > 100 Then "A" Else "B"
 
  方法II:If condition Else statement
 If condition
 Else
   statements
 End
  方法III:If condition Then statement
 If condition
 Then
     statements
 End
 
  方法IV:If condition Then statements [Else statements]
 If condition
 Then statements
 End
 [Else statements
 End]
 
註釋
 以REM * ! $* 開頭的爲註釋

系統變量:
  1、@Date, @Time  -->  Jobs開始運行的日期和時間,年、月、日是從日期函數中獲得的。
  2、@InRowNum, @OutRowNum  -->  導入的記錄數量,導出的記錄數量。
  3、@LogName  -->  登陸的用戶名。
  4、@Null -->  返回空值。
  5、@True, @False  -->  返回布爾值。
     @True  = 1
     @False = 0
  6、@Who  -->  獲得當前工程的名字。

使用Iconv和Oconv函數轉換日期
  使用Iconv來將一個字符串的日期轉換成爲一個國際的數字,是天數。
  以1967年12月31日作爲基礎點,那一點在DataStage中是"0"。
  使用Oconv來將一個日期的天數,轉換成爲一個具有格式的字符串。
  使用"D"字的轉換代碼,使用日期格式來進行顯示。
  "D4-MDY[2,2,4]":
   1、D 表示日期的轉換代碼。
   2、4 表示年份的位數。
   3、- 表示採用"-"分隔符。
   4、MDY 年月日的顯示順序。
   5、[2,2,4] 根據前面的顯示順序來顯示年月份的位數。
   Iconv( "12-31-67", "D2-MDY[2,2,2]") --> 0
   Iconv( "12311967", "D4 MDY[2,2,4]") --> 0
   Iconv( "31-12-1967", "D-DMY[2,2,4]") --> 0
   Oconv( 0, "D4-MDY[2,2,4]") --> 12-31-1967
   Oconv( 0, "D2/DMY[2,2,2]") --> 31/12/67
   Oconv( 10, "D/YDM[4,2,A10]") --> 1967/10/January
   Oconv(Iconv( "12-31-67", "D2-MDY[2,2,2]"), "D/YDM[4,2,A10]") --> 1967/31/December
  
   時間:
   X = Oconv(10000, "MT") X = "02:46"
   X = Oconv(10000, "MTHS") X = "02:46:40am"
   X = Oconv(10000, "MTH") X = "02:46am"
   X = Oconv(10000, "MT.") X = "02.46"
   X = Oconv(10000, "MTS") X = "02:46:40"
   X = Oconv(time(), "MTS") X = 當前系統時間
 
常見問題:
1.判斷字符串是否爲空
 
Len( trim(variable) ) = 0
  IsNull(variable)
 
 
2.對日期的處理
  Ereplace(DSLink30.PDATE,"-","") 將"-"分隔符的字符串日期中的"-"替換掉
  Date.tag(date()) 系統日期以"-"分隔 2007-08-21
  Tomorrow = Oconv(Date() + 1, "D4/YMD") "1997/5/24"
  DateCurrentDateTime(date())  2007-08-22 11:44:34.000 (DS Routine)
  DSJobStartDate 2007-08-22
  DSJobStartTime 11:48:58
  DSJobStartTimestamp 2007-08-22 11:48:58
  Ereplace(Date.tag(date()), "-", "") : Ereplace(Oconv(time(), "MTS"), ":", "") 20070822114434


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