arc*_*123 6 datastage information-server
我正在考虑使用RCP来运行通用数据存储作业,但每次调用时初始SQL都会更改.是否有一个过程,我可以使用用户活动变量从文本文件或其他东西注入SQL,以便我可以使用相同的数据流?
我知道这个例程可以读取一个文件来查找参数:
Routine = ‘ReadFile’
vFileName = Arg1
vArray = ”
vCounter = 0
OPENSEQ vFileName to vFileHandle
Else Call DSLogFatal(“Error opening file list: “:vFileName,Routine)
Loop
While READSEQ vLine FROM vFileHandle
vCounter = vCounter + 1
vArray = Fields(vLine,’,’,1)
vArray = Fields(vLine,’,’,2)
vArray = Fields(vLine,’,’,3)
Repeat
CLOSESEQ vFileHandle
Ans = vArray
Return Ans
Run Code Online (Sandbox Code Playgroud)
但这是否意味着我只将SQL存储在一条单行中,即使它很长?谢谢.
小智 2
为什么不在例程本身中包含 SQL 并传播参数呢?
我在一个例程中有多个查询来执行此操作(一个用于源,一个用于 AfterSQL 语句)
这是一个例子,很抱歉我在手机上回答这个问题!
InputCol=Trim(pTableName)
If InputCol='Table1' then column='Day'
If InputCol='Table2' then column='Quarter, Day'
SQLCode = ' Select Year, Month, '
SQLCode := column:", Time, "
SQLCode := " to_date(current_timestamp, 'YYYY-MM-DD HH24:MI:SS'), "
SQLCode := \ "This is example text as output" \
SQLCode := "From DATE_TABLE"
crt SQLCode
Run Code Online (Sandbox Code Playgroud)
我在上面的示例中使用了多重封装,当传递给参数时,请确保检查 ', " 是否已转义或是否正确显示
再次,对质量表示歉意,但我希望它能给您一些想法!