在SAP HANA计算视图(sps12)的单个输入参数中传递多个值时出错

时间:2018-08-03 07:32:40

标签: hana

我编写了一个表函数,用于在单个输入参数中传递多个值。我在简历中也一样。工作正常。 但是,当我想无条件查看数据时会出现问题。即,当我传递“ *”作为输入时,它将引发错误。 在这种情况下,我想查看所有数据(有时)并且有时需要使用过滤器,该怎么办。 我正在尝试处理相同的问题。但这给出了以下错误。当我从计算视图中获取原始数据时。

错误: SAP DBTech JDBC:[2048]:列存储错误:搜索表错误:[2620]“ HADMIN”。“ RA.Test.Pramhamesh :: PH_MULTIPLE_INPUT”:第22行第1行(在pos 589处):[130](范围2 )InternalFatal异常:索引HADMIN:_SYS_SS_CE_60839900_vers1_lang6_type2__2_CS_1_3_RET的表配置无效

代码:

FUNCTION "HADMIN"."RA.Test.Prathamesh::PH_MULTIPLE_INPUT" (IN IP_FORMAT_CD NVARCHAR(3)) 
    RETURNS TABLE (STORE_NO NVARCHAR(10), FORMAT_CD NVARCHAR(3), SALE_QTY DECIMAL(10,3))
    LANGUAGE SQLSCRIPT
    SQL SECURITY INVOKER AS
BEGIN
BEGIN

vfact = select A.STORE_NO,A.FORMAT_CD,SALE_QTY 
        from HADMIN.S_SITE_MASTER A 
        INNER JOIN HADMIN.A_ITT_ITEM_SALES B
        ON A.STORE_NO = B.STORE_NO
        WHERE 
        B.TRANS_DATE BETWEEN ADD_MONTHS(CURRENT_DATE,-1) AND CURRENT_DATE;


IF ( :IP_FORMAT_CD = '*' )
THEN

var_out = CE_PROJECTION(:vfact,
["STORE_NO","FORMAT_CD","SALE_QTY"],
'IN("FORMAT_CD",$$IP_FORMAT_CD$$)');    

ELSE

var_out =  CE_PROJECTION(:vfact,
["STORE_NO","FORMAT_CD","SALE_QTY"],
'IN("FORMAT_CD",$$IP_FORMAT_CD$$)'); 

END IF; 
END;

RETURN 

SELECT * FROM :var_out; 

END;

1 个答案:

答案 0 :(得分:0)

请勿使用已弃用的CE_函数!
对于动态过滤,请使用APPLY_FILTER()函数。 该函数有充分的文档记录,我什至在此处甚至提供了几个示例,因此我现在不再重复。