如何从 Windows 批处理执行驻留在 Oracle APEX 上的 SQL 脚本

Posted

技术标签:

【中文标题】如何从 Windows 批处理执行驻留在 Oracle APEX 上的 SQL 脚本【英文标题】:How to execute SQL scripts that reside on Oracle APEX from Windows batch 【发布时间】:2022-01-13 03:51:05 【问题描述】:

我在 Oracle APEX 上创建了一个 SQL 脚本。 该 SQL 将被维护和更新,但我们不想更改已创建的批处理文件。

因此,我想使用在 Oracle APEX 中创建的 SQL 的名称使 SQL 可执行。 (例如,首先从名称中获取 SQL 主体,然后第二次执行该 SQL。) 是否可以使用 SQLPlus 来实现?

(也许我创建的脚本的信息在数据库某处的表中?)

【问题讨论】:

【参考方案1】:

可以查询sql脚本的SQL。有一个顶点字典视图APEX_WORKSPACE_SQL_SCRIPTS,其中包含脚本名称和实际脚本。 所以你可以做的是创建一个 pl/sql 过程,它接受脚本并使用“立即执行”运行它。通过 Windows 中的 sql 脚本调用该 pl/sql 过程。几点注意事项:

脚本存储在数据类型为 BLOB 的列中,因此您必须转换为 clob EXECUTE IMMEDIATE 不会为您提供您将在脚本中看到的正常输出(插入 x 行、创建表等...)。如果您想获得类似的输出,则必须编写自己的代码。

【讨论】:

我明白了。谢谢你的回答:D我会用程序来解决这个问题。 我的荣幸。如果有帮助,请接受答案 很抱歉我不知道如何正确使用***,很抱歉花了这么长时间才接受。

以上是关于如何从 Windows 批处理执行驻留在 Oracle APEX 上的 SQL 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Gridview 中的 LinkBut​​ton 触发 Onclick 事件驻留在 updatePanel 中?

如何在驻留在不同路径的包上运行带有mod选项“-m”的Python3?

成功构建计划后如何通过电子邮件发送驻留在竹制品中的文件?

oracle监听程序驻留在哪里?

如何判断我的 NSManagedObject 是不是驻留在只读 NSPersistentStore 中?

堆的Java和堆栈是否都驻留在RAM中,类似于C ++?