ODI脚本使用较多参数时出现的问题
Applies to:
Oracle Data Integrator - Version: 3.2.03.01
This problem can occur on any platform.
症状
在一些特定环境下需要启动特定的ODI 带大量参数的Shell 脚本
例如,当通过startscen.bat (.sh)脚本运行一个Scenario,参数传递的数量是被限制的
这种情况下,如果在命令行中设置多于6变量,Scenario执行启动不报错,但只有前6个变量被正确传入并更新。
有通过脚步在启动时可以一次传入大量的参数的方法么?
原因
在早期ODI版本中,通过标准的startscen.bat (.sh)脚本,命令行只接受9个参数。
l 参数1是Scenario的名称;
l 参数2是Scenario版本;
l 参数3是执行上下文;
follwing六个参数(第四至第九名),用于:
l 设置Session的名称,
l 设置跟踪级别,
l 设置日志级别,
l 分配的ODI变量值。
这意味着,如果多于9 个参数,刚需要对startscen.bat (.sh)脚本进行定制。
解决方案
对于运行于Microsoft Windows上的任意ODI版本
由于操作系统原因,它是不可能在命令行上使用超过9个参数('%1','%2',... ...“%9”)。
作为变通,你可以如下修改"startscen.bat"
if "%1" == "-a" goto add
%ODI_JAVA_EXE% ... ODI_START_SCEN %1 %2 %3 %4 %5 %6 %7 %8 %9
goto end
:add
set ARG1=%1
shift
set ARG2=%1
shift
...
set ARGn=%1
shift
%ODI_JAVA_EXE% ... ODI_START_SCEN %ARG1% %ARG2% ... %ARGn% %1 %2 %3 %4 %5 %6 %7 %8 %9
:end
请注意,在这种情况下,第一个参数应该是“- a”