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日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',

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《SAP HANA数据库SQL参考手册.doc》是一份详细的SQL参考手册,它提供了在SAP HANA数据库中使用SQL语言进行查询、操作和管理的相关信息和指导。 这个手册主要包含了SQL语法的基本知识,例如如何创建表、插入数据、查询数据、更新数据和删除数据等。它还包括了SQL函数和操作符的详细说明,使用户能够更好地理解和使用这些功能。 此外,参考手册还介绍了如何使用索引和视图进行数据操作和查询优化。它还提供了有关数据类型、约束和事务处理等重要概念的详细说明,帮助用户了解和正确使用这些功能。 这个手册也包含了一些高级的SQL功能,例如存储过程、触发器和用户定义函数等。它解释了如何编写和执行这些高级功能,以及如何处理异常和错误。 总的来说,SAP HANA数据库SQL参考手册是一个全面、系统和易于理解的SQL参考工具,提供了使用SAP HANA数据库进行数据查询、操作和管理的重要知识和指导。无论是新手还是有经验的用户,都可以从中获得帮助,更好地使用和掌握SAP HANA数据库。 ### 回答2: SAP HANA数据库SQL参考手册.doc是一份关于SAP HANA数据库的SQL参考手册的文档。该手册提供了关于SAP HANA数据库中可用的SQL命令和语法的详细说明和示例。 在SAP HANA数据库中,SQL是主要的查询语言,被用于存储、管理和检索数据。SQL参考手册介绍了如何使用SQL来创建表、插入数据、更新数据和删除数据等基本操作,同时也提供了更高级的查询和分析功能的使用方法。 手册中的内容通常包括以下几个部分: 1. 数据类型:手册提供了SAP HANA数据库支持的数据类型表,包括数字、字符串、日期等。每种数据类型都有详细的说明,指导用户在数据库中正确地存储和处理不同类型的数据。 2. 数据库对象:手册介绍了如何创建和管理数据库对象,例如表、视图和存储过程等。用户可以了解如何使用SQL命令来创建和操作这些对象,以及如何利用它们来组织和管理数据。 3. 查询语句:手册提供了丰富的查询语句示例,包括基本的SELECT语句、连接表、子查询和聚合函数等。用户可以学习如何构建复杂的查询语句来从数据库中检索所需的数据,并了解如何使用聚合函数对数据进行汇总和计算。 4. 数据更新和删除:手册介绍了如何使用SQL命令来更新和删除数据库中的数据。用户可以学习如何使用UPDATE和DELETE语句来修改和删除特定行或的数据,以及如何使用事务处理来保证数据的一致性和完整性。 总之,SAP HANA数据库SQL参考手册.doc是一份非常有用的文档,它为用户提供了关于SAP HANA数据库中SQL命令和语法的详细说明和示例。用户可以通过学习该手册来掌握SAP HANA数据库的基本操作和高级查询功能,提升对数据库的理解和应用能力。 ### 回答3: "SAP HANA数据库SQL参考手册.doc" 是一个为SAP HANA数据库编写的SQL参考手册文档。SAP HANA是一种内存数据库解决方案,旨在提供实时分析和实时应用程序开发的性能。 该手册对SAP HANA数据库的SQL语言和功能进行了详细的介绍和解释。它包含了SQL查询、DDL(数据定义语言)、DML(数据操作语言)、数据类型、数据函数等方面的内容。 在SQL查询方面,手册提供了各种查询语句的示例和用法,包括选择查询、连接查询、过滤查询等。它还介绍了如何使用SQL进行条件过滤、排序和分组。 在DDL方面,手册解释了如何创建和管理表、视图、索引和用户定义的函数等数据库对象。它还提供了DDL语句的语法和使用示例。 在DML方面,手册介绍了如何通过SQL语句执行数据插入、更新和删除操作。它还包括事务处理和并发控制的相关内容。 此外,手册还提供了丰富的数据类型信息,包括数值类型、日期和时间类型、字符串类型等。它还介绍了可用的数据函数,如聚合函数、数学函数和字符串函数。 "SAP HANA数据库SQL参考手册.doc" 是SAP HANA数据库开发人员和管理员的重要工具,可以帮助他们更轻松地编写和管理数据库中的SQL语句。它提供了详细的文档和示例,使用户能够充分利用SAP HANA数据库的功能和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值