You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Cognos 10内容存储数据库关联视图与源报表(Oracle SQL)

关联Cognos 10视图与源报表的Oracle SQL实现

核心逻辑说明

Cognos内容存储中,报表视图(report view)的源报表关联信息存在cmobjprops3表中——该表的value字段保存了源报表的唯一标识CMID。通过这个字段可以直接建立视图与源报表的精准关联,而非仅查询同文件夹下的报表。

完整SQL语句

SELECT
    -- 视图相关信息
    view_name.name AS 视图名称,
    view_obj.cmid AS 视图CMID,
    -- 源报表相关信息
    report_name.name AS 源报表名称,
    report_obj.cmid AS 源报表CMID
FROM
    cmobjects view_obj
    -- 关联视图名称表
    INNER JOIN cmobjnames_base view_name 
        ON view_obj.cmid = view_name.cmid
    -- 关联视图属性表,提取源报表CMID
    INNER JOIN cmobjprops3 view_props 
        ON view_obj.cmid = view_props.cmid
        AND view_props.propID = (SELECT propid FROM cmproperties WHERE name = 'sourceReport')
    -- 关联源报表对象表
    INNER JOIN cmobjects report_obj 
        ON view_props.value = report_obj.cmid
    -- 关联源报表名称表
    INNER JOIN cmobjnames_base report_name 
        ON report_obj.cmid = report_name.cmid
    -- 过滤对象类型:仅处理报表视图和报表
    INNER JOIN cmclasses view_class 
        ON view_obj.classid = view_class.classid
        AND view_class.name = 'reportView'
    INNER JOIN cmclasses report_class 
        ON report_obj.classid = report_class.classid
        AND report_class.name = 'report'
-- 可选:指定单个视图查询,移除则返回所有视图与源报表的关联
WHERE
    view_name.name = 'Vue de rapport de lam Rapport Indicateurs IDFM'

语句解释

  1. cmobjects:存储所有Cognos内容对象的基础元数据,包括唯一ID(CMID)和对象类型ID(classid)。
  2. cmobjnames_base:存储对象的显示名称,通过CMID与cmobjects关联。
  3. cmobjprops3:存储对象的长文本属性,这里通过sourceReport属性获取视图对应的源报表CMID。
  4. cmproperties:通过属性名称sourceReport匹配对应的属性ID,确保关联字段准确。
  5. cmclasses:过滤对象类型,避免混入文件夹、数据源等其他类型的对象。

对现有SQL的补充说明

你当前的SQL仅能查询视图所在文件夹内的所有报表,无法定位到视图对应的特定源报表。上述SQL通过视图内置的sourceReport属性直接关联,能精准返回每个视图对应的唯一源报表。

内容的提问来源于stack exchange,提问作者Mamadou Lamine BAH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 11:22:47