HANA版本:SP12
全部
正如Lars在许多博客和论坛中所述,我已经成功地使用INPUT_PARAMETERS创建了Calc视图。虽然这些视图在直接查询单个和多个输入时可以正常工作,但是在存储的proc或表函数中对Calc View本身执行联接时遇到了问题。
示例:
“ BASE_SCHEMA”。“ BASE_TABLE_EXAMPLE ”-记录数(*)〜200万条记录
“ _SYS_BIC”。“ CA_EXAMPLE_PRODUCTIVITY ”
问题1:nvarchar的最大值为5000。如果不同字符的计数为5000+,则无法在参数内使用多个输入。
问题2:如何以与在SQL中执行INNER_JOIN相同的方法使用PLACEHOLDER逻辑。
base_data =
select
PLANT
,MATERIAL
from "BASE_SCHEMA"."BASE_TABLE_EXAMPLE"
group by PLANT,MATERIAL;
我认为应该执行以下操作,但是当在nvarchar(5000)的输入参数中串联多个字符串以供使用时,输出会引起问题。
select
string_agg(PLANT,''',''') as PLANT
,string_agg(MATERIAL,''',''') as MATERIAL
into var_PLANT, var_MATERIAL
from
(
select
PLANT
,MATERIAL
from :base_data
);
到目前为止,虽然我很成功,但是一旦将变量添加到Calc视图的PLACEHOLDER中,它就无法说明我向IP传递了太多字符。有什么建议么???预先感谢。
base_calc =
select
PLANT
,MATERIAL
,MATERIAL_BU
,etc....
from "_SYS_BIC"."CA_EXAMPLE_PRODUCTIVITY"
(PLACEHOLDER."IP_MATNR"=> :var_MATERIAL, --<---Fails here. :(
PLACEHOLDER."IP_PLANT"=> :var_PLANT);
有关SAP SCN的问题。位于here!
答案 0 :(得分:0)
您是否尝试使用WHERE子句代替PLACEHOLDER?
base_calc =
select
PLANT,
MATERIAL,
MATERIAL_BU,
etc....
from "_SYS_BIC"."CA_EXAMPLE_PRODUCTIVITY"
WHERE MATERIAL = var_MATERIAL AND PLANT = var_PLANT;