0

我想运行一个 sqlcl 命令来导出每个应用程序,而不仅仅是一个。

Apex export # 工作得很好,但如果我尝试使用 apex export -instance 声明为“导出所有应用程序”,它表示应用程序导出需要一个应用程序 ID(数字)。

当我尝试任何其他形式的顶点导出而不是基本的导出时,也会发生同样的错误。

此外,它似乎不会在 SQL Workshop 下导出包、表、脚本等。我可以使用其他命令来执行此操作吗?

我的最终目标是从不同的工作区全部导入,以防改变我应该如何导入它。

4

1 回答 1

1

可以在 sqlcl 中编写脚本并使用SCRIPT关键字调用它们。这是从工作区“TEST”导出一些应用程序的示例:

ctx.write("Export for apex apps\n\n");
ctx.write("start\n\n");

var binds = {};
var exportstmt;

var objects = util.executeReturnList(
  "SELECT application_id FROM apex_applications WHERE workspace = 'TEST' and rownum < 3"
    ,binds);
for (i = 0; i < objects.length; i++) {
    ctx.write( objects[i].APPLICATION_ID  + "\n");
    exportstmt =  'apex export ' + objects[i].APPLICATION_ID;
    ctx.write( exportstmt  + "\n");
    sqlcl.setStmt(exportstmt);
    sqlcl.run();
}
ctx.write("end\n\n");

将上面的代码保存在一个文件中(例如“export_apps.js”)并在 sqlcl 中使用命令调用它SCRIPT export_apps.js

于 2022-01-04T08:26:15.760 回答