OdiOSCommand 赋值变量
OdiOSCommand assign variable
我有 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 !"
但是这种赋值方式不行。
同样的问题出现在 echo "something" > #TEMP 中。这不会做任何事情。
#TEMP 仍然只包含默认值。
我需要特殊的语法来操作命令中的 ODI 变量吗?
你能给我举个例子吗?我如何为 ODI 变量赋值?
非常感谢。
除了两种可能性外,没有其他方法可以更改 ODI 变量:
- 使用类型为
Refresh Variable
的可变步骤
- 使用类型为
Set Variable
的可变步骤
将变量拖放到包中,然后在属性的常规选项卡上选择合适的类型 window。
如果您正在寻找更灵活的机制在会话期间将值存储在内存中,您可以使用 Java BeanShell 替换。任何地方都可以写
<@TEMP="Hello world!"@>
此替换将在执行时消失,但 TEMP
变量将在会话 运行 期间保持分配的值。在进一步的步骤中,您可以写
<@=TEMP@>
现在替换被变量的当前值替换。您也可以在 ODI 变量赋值或刷新中使用此类构造。
我有 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 !"
但是这种赋值方式不行。
同样的问题出现在 echo "something" > #TEMP 中。这不会做任何事情。
#TEMP 仍然只包含默认值。
我需要特殊的语法来操作命令中的 ODI 变量吗? 你能给我举个例子吗?我如何为 ODI 变量赋值?
非常感谢。
除了两种可能性外,没有其他方法可以更改 ODI 变量:
- 使用类型为
Refresh Variable
的可变步骤
- 使用类型为
Set Variable
的可变步骤
将变量拖放到包中,然后在属性的常规选项卡上选择合适的类型 window。
如果您正在寻找更灵活的机制在会话期间将值存储在内存中,您可以使用 Java BeanShell 替换。任何地方都可以写
<@TEMP="Hello world!"@>
此替换将在执行时消失,但 TEMP
变量将在会话 运行 期间保持分配的值。在进一步的步骤中,您可以写
<@=TEMP@>
现在替换被变量的当前值替换。您也可以在 ODI 变量赋值或刷新中使用此类构造。