BI报表版本: Cognos BI V8.3
数据库版本:oracle 10g
在查询项日期型转换字符型函数提示RQP-DEF-0177“sqlOpenResult”错误:
表达式:substring(cast(_add_years(cast(20090901,date),-1),varchar(10)),1,10)
RQP-DEF-0177 执行操作“sqlOpenResult”(状态为“-28”)时出错
UDA-SQL-0114 为操作“APICursor::OpenResult”提供的游标无效。 UDA-SQL-0107 “open result”操作期间发生常规例外。 ORA-01877: string is too long for internal buffer RSV-SRV-0042 回溯: RSReportService.cpp(747):
解决办法:先分析问题,是当日期转换字符时,Oracle数据库返回的字符长度是19位,而Cognos返回长度是29位,相差10位长度,如结果“2009-09-01 00:00:00.000000000”秒级精确到九位。直接对表达式调整:substring(cast(_add_years(cast(20090901,date),-1),varchar(29)),1,10)