Cognos Analytics升级后参数中REPLACE函数报错求助
Cognos 12.0.1动态查询模式下替代REPLACE函数的解决办法
问题场景
从Cognos 10.2.2兼容模式升级到12.0.1动态查询模式后,原报表中用replace(?pFromDate?,',','')处理文本提示参数时,触发错误:XQE-PLN-0098 The vendor specific function "replace" is not supported。尝试过参数类型统一、直接用REPLACE/TRANSLATE、通过数据集数据项承载参数后再替换,均无法解决。
有效替代方案
用Cognos原生的**substitute函数**替代数据库的REPLACE,这个函数由Cognos本地处理,不会下发到SQL Server执行,完美规避函数不支持的问题。
直接替换表达式
把原来的替换逻辑改成:
substitute(',', '', ?pFromDate?)
substitute的用法很直观:第一个参数是要替换的子串(这里是逗号),第二个是替换后的内容(这里是空字符串),第三个是目标字符串(你的日期参数?pFromDate?)。
进阶:通过数据项中转(需保留原始参数时用)
如果需要保留原始参数值,可在数据集里新建计算数据项:
- 新建计算数据项,命名为
CleanedFromDate - 表达式填写:
substitute(',', '', ?pFromDate?) - 报表后续逻辑直接引用这个
CleanedFromDate数据项即可
为什么这个方案可行
substitute是Cognos内置的字符串处理函数,不属于数据库厂商特定函数,在动态查询模式下会由Cognos本地解析执行,不会触发XQE-PLN-0098这类数据库函数不兼容的错误,完全适配你的场景。
内容的提问来源于stack exchange,提问作者S Sum
相关产品推荐
相关产品推荐

