【问题标题】:User-Defined Function Nested in Macro - Framework Manager嵌套在宏中的用户定义函数 - Framework Manager
【发布时间】:2021-07-28 20:57:01
【问题描述】:

我们正在尝试创建一个动态查询主题过滤器。为此,我们尝试在宏中嵌套一个 Oracle 用户定义函数。

查询主题过滤器示例:

#strip(ORACLE_USER_DEFINED_FUNCTION())#

我们已将 oracle 函数 ORACLE_USER_DEFINED_FUNCTION 导入 Framework Manager。该函数返回所需表达式的 VARCHAR2。出于测试目的,此函数仅返回 '1=1' 的 VARCHAR2 值(单引号不是 VARCHAR2 返回值的一部分)。

我们希望查询主题过滤器表达式在运行时动态生成,因此生成的查询包含'...WHERE 1=1'strip 宏是在将查询发送到数据库之前预处理和调用用户定义函数的机制。

但是,在尝试验证/检查查询主题过滤器时,我们会收到以下错误。

XQE-GEN-0018 查询服务发生内部错误,详情请查看日志。

我正在尝试获取查询服务日志,但还没有。

也许需要进行一些转换才能将 oracle VARCHAR2 输出从函数转换为 IBM/Cognos 字符串,该字符串是 IBM/Cognos 宏可接受的输入。

感谢您的帮助。提前致谢。

使用 Oracle 12c 和 Cognos 11.1。

【问题讨论】:

  • 动态查询模式还是兼容查询模式?
  • 是 1=1 使过滤器成为可选的吗?

标签: oracle macros user-defined-functions oracle12c cognos


【解决方案1】:

除了 queryValue 宏函数之外,宏会在访问数据库之前进行评估。这意味着宏不知道 Oracle UDF 是什么或它应该做什么。如果您能够通过 FM 查询主题调用 UDF,您可能会得到与此处找到的 queryValue 答案类似的内容:

Cognos 11.1.7 Framework manager change the table for the query subject, type data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 2021-11-25
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多