【发布时间】: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