如何从命令行调用 ODI 场景并等待其执行

How to call ODI Scenario from command line and wait for its execution

我想从命令行调用 ODI 场景并等待其完成。我正在使用 ODI 12c 并安装了独立代理。我已经发现您可以使用 startscen.cmd 命令,它对我有用。唯一的问题是 cmd 没有等待场景完成。有什么建议可以实现这样的目标吗?

我的 .bat 文件如下所示:

cd C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\bin
call startScen.cmd "-INSTANCE=CITestAgent" MAPPING 1_0_0 GLOBAL "-SESSION_NAME=TEST_RUN" "-AGENT-URL=http://localhost:20910/oraclediagent"
cd C:\Users\Redekera\documents\testFiles
"C:\Users\REDEKERA\Documents\instantclient_19_3\sqlplus.exe" db_user/pw@db/scheme @run_tests_lieferschein.sql

在该命令之后,我想通过 sql*plus 运行 一个 sql,这需要等到场景结束。

感谢大家的帮助:)

如果您希望第二个命令仅在第一个命令成功退出时执行:

execute scenario command && sql*plus command

摘自here

主要思想是“&&”符号!

默认startscen.cmd会等待执行结束到return。 这可以通过参数 -ASYNC=yes 更改以异步开始执行。在那种情况下,它将 return 用于检查执行状态的 SESSION 编号。