如何根据替换字符串在 Oracle Apex 中调整安装脚本?

Posted

技术标签:

【中文标题】如何根据替换字符串在 Oracle Apex 中调整安装脚本?【英文标题】:How to condition an installation script in Oracle Apex based on a substitution string? 【发布时间】:2019-11-08 02:02:28 【问题描述】:

我想根据替换字符串中的值来调整 Oracle Apex 安装或升级脚本的执行。我有 2 个不同的脚本在数据库中填充种子数据,我想根据我在安装期间为替换字符串指定的值来确定执行哪个脚本。作为应用程序导入的一部分,系统会提示输入替换字符串的值。到目前为止相当标准的东西。 但是,无论我如何指定条件,我都无法让它发挥作用。所有示例应用程序似乎都没有设置这种类型的条件,而且我无法在任何地方找到任何讨论此用例的文章。 Oracle 关于该主题的文档不存在。

我尝试过以下形式的 PL/SQL 表达式::IMPLEMENTATION = 'MYVALUE' &IMPLEMENTATION. = 'MYVALUE' IMPLEMENTATION = 'MYVALUE' SQL 表达式:select null from dual where :IMPLEMENTATION = 'DTEDDTM'

表达式 1 中的文本 = 表达式 2:IMPLEMENTATION, MYVALUE :IMPLEMENTATION, 'MYVALUE' &IMPLEMENTATION., 'MYVALUE'

我尝试了其他一些选项,但你明白了。无论我尝试什么,即使替换字符串 IMPLEMENTATION 设置为“MYVALUE”,脚本也永远不会被执行。

问题 #1: 甚至可以在安装脚本条件下访问替换字符串中的值吗? 问题 #2:如果对 #1 回答“是”,那么如何处理?

谢谢。

【问题讨论】:

认为您使用 sqlplus 安装脚本 .. 所以 &IMPLEMENTATION。 = 'MYVALUE' 应该是替代变量的语法blogs.oracle.com/opal/sqlplus-101-substitution-variables#2 感谢您的评论。但是,我试过了,但没有奏效。请看我上面的例子。 我必须进行测试,但我不相信您可以在安装过程中访问替换字符串。这个工具实际上是用来查询数据字典和自定义数据的。我对您的问题是:您使用什么来确定要放入替换字符串的值?您何时将值设置为“DTEDDTM”而不是其他值? 这是在应用安装期间完成的。它是安装过程中提示输入的字符串之一。 【参考方案1】:

在分析导出的应用程序 SQL /后,我意识到替换字符串不是脚本本地的,因此不能用于驱动安装脚本条件。 我的解决方案是创建一个简短的 SQL*Plus 脚本来填充设置表中的键/值对,我可以在其中存储实现代码。通过在导入 Apex 应用程序之前运行该脚本,我可以设置一个条件来查询设置表,使用键“IMPLEMENTATION”作为检索所需实现的查询条件。如果该查询返回一行,则将执行安装脚本。 它有效。

【讨论】:

以上是关于如何根据替换字符串在 Oracle Apex 中调整安装脚本?的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle APEX PL/SQL 中传递变量

如何在 Oracle Apex 中使用静态 ID 定位图表系列?

Oracle Apex:如何执行程序并在页面上显示结果

如何在 Oracle APEX 交互式网格报表中维护正在运行的计数器

Oracle Apex - 根据值的数量显示项目

根据 Oracle APEX 项目值更新和插入