SAP HANA 10. Create an SQLScript Procedure with Imperative Logic

原创 2013年12月02日 21:37:13

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日ANAoevelopment一。:\sAp学习资料\日ANA\cloudshareRepositol叭Workshop\、essiona\00\models\get_product_、ale--price.procedure一sAp日ANAstudioFileEditir当,日乙-Navigate喃_勺SearchprojectRunWindowHelp;争,O,飞,甲,!乞,,令中,,叼projectExpl吸句呀get-Prodoct--,"!畔JsAp日ANAR?。gApHANA91口e_prICe.pFOHDB一SQLConsoleZooedure叭鲤:匹下AP-HANA-EpM一DEMO”·”ap·卜ana·democon,en,·‘[HDB(SYSTEM,'Workshop.helloodata')][HDB(SYSTEM,'Workshop.sessiona.OO')]HDB(SYSTEM)uvolbawcub45qagptgu.vm.cld.,roo壑到丝Loca'Tab,e砂pesL/*Youcancreatene脚tabletypesandusethemasinputandoutputparametersinaprocedure.Thetabletypesoustbedefinedusing义Lsyntax,forexaople:cREATE,I-YPE<TypeName>ASTASLE(<filedNamel><FiledTypel>,<filedNaoeZ><FiledTypeZ>,…).*/createtypett_procuct_sale_priceastable(product工dnvarchar(le),categorynvarchar(帕),pricenvarchar(Ze),salepricenvarchar(20)),吐JavascriptRe沁urces卜身data,姗model,疡get--bp一addresses_by_role_ce.procedure比get-bp_addresse、_b犯role_:ql.procedure比get--Product--saIe--price.procedure一0·xsaccesS一〕·xsapp昆·x,privilege,卜图RetrieveData.xsjs

 

 

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;


 

计算机生成了可选文字: 汤sAp日ANAoevelopment一。:\sAp学习资料训ANA\cloudshareRepos汪Ol叭Wor.晰OP\Se,siona\00,、mode.s\get--product_sale_p「ice.procedure一sAp日ANAstudio三1Ie互dit丝avigates胆rchZroject旦un巡indow旦elp:肖,周履自}参,O甲%,;甲,}乞,御毛projectSApHANAR…?。SApHANA,令巾,中甲1‘宁·getxr。d。ct-,。l"'ce.pr。。edure·‘昭_返·SAP-HANA-Ep叼二石巴”HOB一“QLCon'oleZ醋国巫_DEMO':,ap.hana.democontent.eHDB(SYSTEM)uvolbawcub45qagptgu.vm.cld.sroo磷helloodata[HDB(sysTEM,'workshop·helloodata')]潇opensApl[HDB(SYsTEM.'Workshop.sessiona.oo')]二,公JavascriptRe沁urces卜身data,姗model,疡get--bp_addresses_b犯rol几ce.procedure比get-bp_addre,se,_b犯rol气,ql.procedure比get-product--sal却rice.proced。re昆.xs。。cess昆.xsapp昆·x,privilege,〔》吩RetrieveData.xsjsLocalTableTypescREATEPRocEDUREget_product_sale_price(inproductidnvarchar(le),outproduct_sale_pricett_procuct_sale_price)LAN6UA6ESQLSCRIPTSQLSECURITYI付VOKERREADSSQLDATAASBEGIN一ldeclareIv--categorynvarchar(妈):,null二declareIv--discountdecioal(15,2):=e;It_product=select"Productld","category","Price"fr阅”SAP_HANA--EP性DE阳”.'"sap.hana,de阳content.epm.data:树here"Productld"=:productid;select"category"intol七categoryfr俪:It_product二if:IV--category='Noteb00ks'thenIv--discount:=.20;elseif:Iv--category,'Handhelds"thenIv--discount:=.25;elseif:Iv--category='Flatscreens'thenIv_discount:=.30;elseif:Iv--categorylike'%printers%'thenIv--discount:=.30;e1SeIv_discount:=e.的;endif;product_sale_price二select"product工d'","category","Price'",",Price”一cast(("Price"*:Iv--discount)asdec玩al(15,z))fr阅:It_product;END二:products"as'.SalePrice'"

 

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

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


 

计算机生成了可选文字: 汤sAp日ANAoevelopment一c:\Windows\s"tem32\sQLconsoleZ一sAp日ANAstudio巨卜,,.目口FIIeEditNavigatesearchprojectRunwindowHelp{肖,周履自}争,O,飞,;矛,}勿,御,‘石project〔xpl小吃弘pHANARl?。SAp"ANAS_县县卜冯一令中,ty"get-P中,roduct声ale-price.procedure区皿tHOB一SQLCon,o,eZ自己”SA瞥ANA-印M一D〔MO’·”,'p·卜‘n‘·democon,en,·e口巨卜el100data州二:openSApl〔H二三引气O皿井,‘一1,磷眺J?)l目JavagcriptRe,ources〔,身data,身model,比get--bp_addresses_b犯role_ce.proced。re眺get-bp_addres,e,_b犯role-,ql.proced。re比get--Product--sale--price.procedure_口·xsaccess昆.x,app昆·x,privilege,·图Retr;eveData.xsjsHoB(s丫sT〔M)uvolbawcub45qagptgu·vm·cld·Sroo血SQL尸Resultcall"_SYS_Blc".”吻rkshop.sessiona.Oe.models/get_product_sale_price"(productid=>'HT一1。。。product_sale_price=>lprodu出d日丁一1000CategoryNotebooksprice956.00Saleprice764.80Statement'call"_SYS_Blc".”吻rkshoP.:e:。iona.ee二dels/get_Product_:ale_price"(productidsuccessfullyexecutedin5260541卜s(serverprocessingtioe:82ms342甘s)Fetchedlr洲(s)inems18卜s(serverprocessingtime:0mse林s)二>'HT一leOS',

 

 

 

 

 

SAP HANA中调试存储过程

对于使用SQLScript 的存储过程,SAP HANA提供了对存储过程的调试功能,即debug功能。当对一个存储过程进行调试时,这个存储过程中的代码将被顺序执行,而并不是按照实际的可能情况并行执行。...
  • champaignwolf
  • champaignwolf
  • 2016年05月03日 14:06
  • 2767

【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
  • SAPmatinal
  • SAPmatinal
  • 2017年06月06日 21:43
  • 1056

论big data 3.0取代SAP HANA的可行性

论big data 3.0取代SAP HANA的可行性 简言之,big data 3.0就是要实现SQL on big data,而且要兼顾性能、易用性和可扩展性。目前是“搜索引擎+大数据+SQL“...
  • china_world
  • china_world
  • 2016年06月14日 14:05
  • 834

如何创建XS Job来完成定时任务

HANA系统的XS引擎提供了定时执行你的任务的功能。你可以让HANA定期地完成一些你指定的操作。 你将在本文中看到如何编写一个简单的XS应用并调度一个XS Job来执行它。这个应用会向特定的表里...
  • lively1982
  • lively1982
  • 2015年10月27日 14:28
  • 1783

SAP HANA 基础架构简介(三)

Index Server –JoinEngine 当query 包含JOIN or aggregate expressions 时使用 e.g. COUNT, MIN, MAX, SUM,...
  • xiegh2014
  • xiegh2014
  • 2015年09月24日 11:17
  • 992

一位SAP培训顾问的建议:SAP HANA应该如何学习?

SAP HANA应该如何学习? 从HANA本质来讲大家都知道,就是一个数据库,和Oracle,SQL Server 没啥本质的区别,内存计算、列式存储也不是啥新玩意,所以学习HANA和学习一个新的数据...
  • champaignwolf
  • champaignwolf
  • 2015年12月23日 19:29
  • 1754

SAP HANA学习资料大全[非常完善的学习资料汇总]

SAP HANA学习资料大全[非常完善的学习资料汇总] Check out this SDN blog if you plan to write HANA Certification exa...
  • bj_chengrong
  • bj_chengrong
  • 2017年06月02日 14:07
  • 377

HANA的可扩展性

可扩展性HANA支持Scale-Up和Scale-Out。Scale-Up(纵向扩展)是指在计算单元内增加资源。而Scale-Out(横向扩展)是指添加其它的计算单元,并逻辑上形成一个整体。纵向扩展(...
  • stevensxiao
  • stevensxiao
  • 2016年06月02日 08:41
  • 5948

SAP UI5上传图片 用XSJS存储在HANA中的方法

SAP UI5上传图片 用XSJS存储在HANA中的方法
  • SAPmatinal
  • SAPmatinal
  • 2017年03月24日 21:56
  • 476

在虚拟机环境下搭建自己的SAP HANA数据库学习环境

SAP HANA是一个全新设计的内存数据库系统,他即支持传统的行式存储也支持列式存储。HANA数据库具有很高的性能、并发能力和可扩展性。HANA即可以支持OLTP应用也可以支持OLAP系统。   ...
  • xiegh2014
  • xiegh2014
  • 2015年08月07日 17:02
  • 2327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SAP HANA 10. Create an SQLScript Procedure with Imperative Logic
举报原因:
原因补充:

(最多只允许输入30个字)