有没有办法使用用户活动变量在Datastage中存储SQL

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)

我在上面的示例中使用了多重封装,当传递给参数时,请确保检查 ', " 是否已转义或是否正确显示

再次,对质量表示歉意,但我希望它能给您一些想法!