SAP HANA 10. Create an SQLScript Procedure with Imperative Logic

SAP HANA SQLScript Imperative Logic 包括 IF+ELSE+ENDIF while循环、For循环、 Case等。

 

1、新建文件NewFile 创建get_product_sale_price.procedure

 

2Local Table Type

 

create typett_procuct_sale_price as table (
ProductIdnvarchar(10),
Categorynvarchar(40),
Price nvarchar(20),
SalePricenvarchar(20)
)


 

SAP HANA 10. Create an SQLScript Procedure with Imperative Logic_第1张图片

 

 

3SQLScript

CREATE PROCEDUREget_product_sale_price(
    in productid nvarchar(10),
    out product_sale_pricett_procuct_sale_price
)
LANGUAGESQLSCRIPT
SQLSECURITY INVOKER
READSSQL DATA AS
BEGIN
/*****************************
Writeyour procedure logic
 *****************************/
declare lv_categorynvarchar(40) := null;
declare lv_discountdecimal(15,2) := 0;
lt_product = select"ProductId", "Category", "Price"
from"SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::products"
where"ProductId" = :productid;
select"Category" into lv_category from :lt_product;
if :lv_category ='Notebooks' then
lv_discount := .20;
elseif :lv_category= 'Handhelds' then
lv_discount := .25;
elseif :lv_category= 'Flat screens' then
lv_discount := .30;
elseif :lv_categorylike '%printers%' then
lv_discount := .30;
else
lv_discount := 0.00;
end if;
product_sale_price =
select"ProductId", "Category", "Price",
"Price"-cast(("Price"* :lv_discount) as decimal(15,2)) as "SalePrice"
from :lt_product;
END;


 

 

4TeamCommit& Activate之后,在SQL Console中调用代码,执行结果如图所示

call"_SYS_BIC"."WorkShop.sessiona.00.models/get_product_sale_price"(
productid =>'HT-1000',
product_sale_price=> ?)


 

 

 

 

 

 

你可能感兴趣的:(sql,HANA,SAP,内存计算,列存储)