Я пытаюсь выполнить сплетение по размеру на аналитическом представлении в хранимой процедуре, и я хочу передать меру, на которой я буду применять функцию агрегации динамически. Так что я сделал следующее:Как применить функцию агрегации по мере, динамически переданной в хранимую процедуру?
create procedure procHO (in currentMeasure varchar(60))
language sqlscript as
begin
data_tab = select MONTH_NAME as ID, sum(:currentMeasure) from
_SYS_BIC."schema/analyticView" GROUP BY MONTH_NAME;
end;
я вызвать процедуру таким образом:
call procHO("MARGIN");
, но я получаю сообщение об ошибке сказав:
inconsistent datatype: only numeric type is available for aggregation function: line 5 col 38 (at pos 124) Could not execute 'call procHO("MARGIN")'
Я также попытался это сделать с помощью CE_, вот что я сделал:
create procedure procHO1(in currentMeasure varchar(60))
language sqlscript as
begin
out1 = CE_OLAP_VIEW("schema/analyticView", ["MONTH_NAME",
SUM(:currentMeasure)]);
end;
, и я вызвать процедуру таким образом:
call procHO1("MARGIN");
, но до сих пор, я получаю сообщение об ошибке сказав:
feature not supported: line 5 col 70 (at pos 157)
Could not execute 'call procHO1("MARGIN")'
, кстати, в качестве временного решения, можно создать динамический запрос SQL что бы решить эту проблему, вот пример: создать процедуру procHO2 (в currentMeasure VARCHAR (60)) язык sqlscript, как начинают
exec 'select MONTH_NAME AS ID, sum('||:currentMeasure||') as SUM_MEASURE from
_SYS_BIC."schema/analyticView" GROUP BY MONTH_NAME';
end;
Я называю это так
call procHO2('MARGIN');
, но я не хочу, чтобы создать запрос SQL динамически, так как его не рекомендуется по SAP.
Итак, что делать, чтобы динамически преобразовывать агрегированную меру?
спасибо, я проверю это, когда у вас есть доступ к экземпляру SAP HANA. Я использую ревизию 67 – MedAli
. Пример, который вы приводите выше, предназначен для вычисления, а не аналитического. В случае аналитического представления передача меры в качестве параметра, похоже, не работает. Не могли бы вы попробовать его с рекомендациями и сказать мне, если он работает, я не буду иметь доступ к хане в течение нескольких дней. благодаря – MedAli