HANA версия: SP12
Все
Я успешно создал Calc Views с INPUT_PARAMETERS, как описано Ларсом во многих блогах и форумах. Хотя эти представления работают без проблем при запросе напрямую для одного и нескольких входов, я сталкиваюсь с проблемой при выполнении объединений в самом представлении Calc в хранимой процедуре или табличной функции.
Пример:
" BASE_SCHEMA". "BASE_TABLE_EXAMPLE " - количество записей (*) ~ 2 миллиона записей
- Ключи: Материал (20 000 различных), Завод (200 различных)
" _SYS_BIC". "CA_EXAMPLE_PRODUCTIVITY "
- Входные параметры: IP_MATNR (nvarchar (5000)), IP_PLANT (nvarchar (5000))
Проблема № 1: максимальное значение для nvarchar равно 5000. Невозможно использовать несколько входов в параметре, если количество различных символов равно 5000 +.
Проблема № 2: Как использовать логику PLACEHOLDER в том же методе выполнения INNER_JOIN в SQL.
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
);
Несмотря на то, что до этого момента я добился успеха, после добавления переменных в PLACEHOLDER в представлении Calc не удается указать, что я передаю слишком много символов 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. Расположен здесь !