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 变量:

  1. 使用类型为 Refresh Variable
  2. 的可变步骤
  3. 使用类型为 Set Variable
  4. 的可变步骤

将变量拖放到包中,然后在属性的常规选项卡上选择合适的类型 window。

如果您正在寻找更灵活的机制在会话期间将值存储在内存中,您可以使用 Java BeanShell 替换。任何地方都可以写

<@TEMP="Hello world!"@>

此替换将在执行时消失,但 TEMP 变量将在会话 运行 期间保持分配的值。在进一步的步骤中,您可以写

<@=TEMP@>

现在替换被变量的当前值替换。您也可以在 ODI 变量赋值或刷新中使用此类构造。