我有OdiOSCommand命令:
OdiOSCommand "-ERR_FILE=/home/oracle/jmt.err" "-WORKING_DIR=#PROJECT_DIR" "-SYNCHRONOUS=YES" "-CAPTURE_OUT_STREAM=ON_ERROR[NONE]" "-CAPTURE_ERR_STREAM=ON_ERROR[NONE]"
#TEMP = "hello world !"
但这种分配方式不起作用。
同样的问题是回声“某事”> #TEMP。这不会做任何事情。
#TEMP仍然只包含默认值。
我是否需要特殊语法来操作命令中的ODI变量? 你能举例说明如何为ODI变量赋值?
非常感谢你。
答案 0 :(得分:1)
除了两种可能性之外,没有其他方法可以更改ODI变量:
Refresh Variable
Set Variable
将Variable拖放到包中,并在“属性”窗口的“常规”选项卡上选择正确的类型。
如果您正在寻找更灵活的机制来在会话期间在内存中存储值,您可以使用Java BeanShell替换。你能写的任何地方
<@TEMP="Hello world!"@>
此替换将在执行时消失,但TEMP
变量将在会话运行时保持分配值。您可以在其他步骤中编写
<@=TEMP@>
现在替换被变量的当前值替换。您也可以在ODI变量赋值或刷新中使用此类构造。