DataStage中Job库函数
时间:2010-09-16 来源:hxl
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
数学运算符:+, -, *, /
关系操作符:=, <, >, <=, =>
逻辑操作符: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
相关阅读 更多 +