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

修改报表查询后无法查看,伴WCF通信及端点错误求助

问题排查与解决方案

一、查询语句核心问题修正

你的Oracle查询存在类型不匹配和隐式转换风险,这大概率是触发报表服务通信错误的根源(查询执行异常导致服务端处理失败,进而抛出WCF通信类错误)。以下是修正后的查询:

WHERE Highlights.FSR_ID = Contacts.mmm_EMPLOYEE_ID
       AND Highlights.AC_ID = AC.ID
       AND AC.MODEL_ID = Model.ID
       AND AppLookup.ID = Highlights.NOTIFICATION_LEVEL_ID
       AND (
              Highlights.DATE_CREATED BETWEEN 
              CASE
                     -- 用Oracle原生DATE类型做比较,避免字符串隐式转换错误
                     WHEN :startDate = TO_DATE('01/01/1800', 'MM/DD/YYYY') THEN TRUNC(CURRENT_DATE, 'IW') - 14
                     -- 统一字段类型:若DATE_CREATED是DATE类型则用TO_DATE,是TIMESTAMP则用TO_TIMESTAMP
                     ELSE TO_DATE(:startDate, 'MM/DD/YYYY')
              END
              AND 
              CASE
                     WHEN :endDate = TO_DATE('01/02/1800', 'MM/DD/YYYY') THEN TRUNC(CURRENT_DATE, 'IW') - 1
                     ELSE TO_DATE(:endDate, 'MM/DD/YYYY')
              END
       )
       AND Contacts.ID = :FSR_ID

关键修正点:

  • 参数类型匹配:将字符串格式的默认日期改为Oracle原生DATE类型,避免报表DateTime类型参数与字符串的隐式转换异常。
  • 统一字段类型:确保BETWEEN前后的表达式类型与Highlights.DATE_CREATED一致(DATE或TIMESTAMP),消除类型不匹配导致的执行错误。
  • 简化格式冗余:Oracle DATE类型默认包含午夜时间,无需额外指定12:00:00 AM。

二、报表服务通信错误排查步骤

若修正查询后仍出现WCF相关错误,按以下步骤排查:

  • 重启报表服务:停止并重启在线报表服务(如SSRS),清理服务端故障会话。
  • 检查端点配置:确认报表预览服务的net.pipe端点配置正确,服务运行账户有足够权限访问该端点。
  • 查看服务端日志:在报表服务器日志目录(如SSRS的C:\Program Files\Microsoft SQL Server\MSRSxx.MSSQLSERVER\Reporting Services\LogFiles)查找详细错误信息,定位具体服务端异常。
  • 验证参数类型:确认报表的startDate和endDate参数类型为DateTime而非字符串,避免参数传递时的类型转换错误。

内容的提问来源于stack exchange,提问作者Nafew Nowshad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:42:46