当前位置:首页 > datastagedads - 图文
工作总结 2007 如果上述情况都核实后,仍启动失败 请使用 \来启动服务,在 dsrpcd.log 文件中看到启动日志信息,根据实际情况解决。
2.22 Locked by other user
启动DataStag Director ,Job---->Clearup Resources,在这个操作窗口中,首先选择窗口下部 \中的\你可以看到窗口显示了所有lock的信息:PID#----Lock Type----Item Id。在Item Id的列表里找到你需要重新打开的job/routine和其对应的PID#值。然后选择上半部分\中的\All\鼠标选中刚才查到的PID#,然后LogOut。 如果不使用Diretor,你可以在DS administrator中使用\或者\command,同样会列出所有的lock信息。That's Ok!
2.23 dataStage Job Log的处理
如何在操作系统层面上,使用command的到job log?
在操作系统中我们可以使用engine(UNIX DSEngine)/bin 下的命令: dsjob -log [-info | -warn]
dsjob -logsum [-type
dsjob -lognewest [-userid]
event type = INFO|WARNING|FATAL|REJECT|STARTED|RESET|BATCH
dsjob -logdetail [useid]
2.24 一些BASIC语言中处理字符串的函数
Individual 2007-10 17 /
65
工作总结 2007 a 使用冒号\:\作为字符串连接的符号。 例如:\等价于字符串 \ 使用中括号[ ]来取出某个字符串的子串,其语法如下:
expression [ [ start, ] length ]
例如:strA=\那么strA[1,3]的意思就是从序号为1的字符开始,一共取出三个字符,其结果就是\。BASIC语言中数组或者字符串的第一个元素的序号是1。
b
c
Count (string, substring)用来计算字符串中的某个子串出现的次数。
例如:计算字符串\中的子串\出现的次数,arrCnt = Count(\\,那么arrCnt就等于2。
d Len (string) 用来计算字符串中包含的字符的个数。 例如:Len(\的值就是3。
e TRIMF (string) 用来删掉字符串首部的空格。 TRIMB (string) 用来删掉字符串尾部的空格。
例如,字符串strA=\,其首尾各有多个空格。经过strA= TRIMF (strA)和strA= TRIMB (strA)这样的处理就可以除掉字符串首尾的所有空格了,其结果是\。
f Index (string, substring, instance) 用来得到字符串中的某个子串的位置。其中instance表示这个子串是在整个字符串中是第几次出现。
例如:字符串为\,要计算子串\第二次出现在字符串中的位置。Index (\的结果就是5。
2.25 BASIC程序中使用到的一些语法知识
(1). BASIC语言有四种符号用来标记注释,分别是REM,*,! ,$*。例如,
*Initial. Validate the input parameters.
这一行以\星号开头,就表示这一行内容是程序的注释。
(2). 条件判断语句,其语法结构如下:
If condition Then statements End
[Else statements End]
其中condition可以是一个数字,也可以是一个比较关系式。当条件为真时,程序执行Then后面的表达式;当条件为假时,则会执行Else后面的表达式。在Basic语言中,逻辑关系运算符是这样的:
? AND (或者符号 &),表示逻辑与的关系。
Individual 2007-10 18 /
65
工作总结 2007 ? ? 例如:
OR (或者 !),表示逻辑或的关系。 NOT,表示逻辑非的关系。 If bitCount > arrCnt Then
Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End
由BitValue转化而来的二进制数的位数大于子串的个数时,就在日志信息中告诉用户BitValue的值和OriStr的值是不可能一一对应的,输入的数据有错误。
If BitValue >= 0 AND Count(BitValue, \ mask=Oconv(BitValue, \End Else
Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End
当输入变量BitValue的值大于零且不是小数的时候,就把它转化为二进制的数;否则为用户提出警告信息并且离开这个函数。
(3). 使用BASIC自带的一些功能函数。
Oconv(expression, conversion)
其中expression表示一个字符串,conversion则表示这个字符串的输出格式。 Oconv(\的功能是把十进制数\,转化为二进制数\;而 Oconv(\的功能是把十进制数\的小数点左移一位,转化为\。 DSLogInfo (Message, CallingProgName)和DSLogWarn (Message, CallingProgName) 的功能十分相似,都是在执行Server Job的时候,输入一些必要的日志信息,帮助用户了解程序的执行情况。其中Message为输出的日志信息的内容,CallingProgName就是调用这个函数的程序名。区别在于DSLogInfo输出的仅仅是普通的日志信息,而DSLogWarn则是输出一些警告的信息给用户。
例如:
Ans=\Call DSLogWarn(Ans,\
Call DSLogInfo(\
(4). 两种循环条件语句
a). For…Next语句,其基本语法如下:
For variable = start To end [Step increment] [loop.statements] Next [variable]
其中start To end定义了变量变化的区间;而increment定义了每次变量增加的值,当start的值大于end的值,increment的值可以是负数。
For num = 1 To arrCnt - bitCount mask = \
Individual 2007-10 19 /
65
工作总结 Next num 2007 如果二进制数的位数小于子串的个数,则在二进制数mask的前面补上\。比如,OriStr中有三个子串\,BitValue的值为2,把十进制的数\转化为二进制的数\。这时,二进制数的位数小于子串的个数,就需要在二进制数前面补上\,使其变成\才能和三个子串一一对应起来。
b). Loop…Repeat语句,其基本语法如下:
Loop
[statements]
[While | Until condition Do] [statements] Repeat
其中,Loop定义了循环的开始,Repeat定义了循环的结束。
While condition Do 的含义是,当条件为真的时候执行循环体中的代码。当条件为假的时候,退出循环。 Until condition Do 的含义正好相反,当条件为假的时候执行循环体中的代码。当条件为真的时候则退出循环。 例如:
pos = 1 start = 1 Ans=\ Loop
While pos <= arrCnt Do
idx = Index(proStr,separator,pos)
If mask[pos,1] = \
subStr = proStr[start,idx - start]
subStr=trim(subStr)
*make sure every substring matches the specified pattern If subStr match \ Ans=Ans:\ End Else
Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End
End
start = idx+1 pos+=1
Individual 2007-10 20 /
65
共分享92篇相关文档