SAP HANA中存储过程写法及其调用介绍

来源:互联网 发布:病态矩阵与特征值 编辑:程序博客网 时间:2024/04/29 08:43

SAP HANA Stuido中编写store procedure的语法与mysql中极为类似,并有多种方式调用之。

SAP HANA中store procedure的基本语法为:

CREATE PROCEDURE {schema.}name {({IN|OUT|INOUT} param_name data_type {,...})} {LANGUAGE <LANG>} {SQL SECURITY <MODE>} {READS SQL DATA {WITH RESULT VIEW <view_name>}} AS BEGIN END;



上述语法看上去挺吓人,其实并不难,下面的语法为HELL WORLD的程序:

CREATE PROCEDURE demo_proc_hello_world LANGUAGE SQLSCRIPT ASBEGIN      SELECT 'HELLO WORLD' FROM DUMMY;END;CALL demo_proc_hello_world;

从上面的代码中,可以使用CALL proc_name来调用procedure。还有另外一种方式可以调用,即:

DROP TABLE CUSTOMER;CREATE COLUMN TABLE CUSTOMER( CUST_ID VARCHAR(10), AGE INTEGER);INSERT INTO CUSTOMER VALUES('Jim',10);DROP PROCEDURE proWithResultView;CREATE PROCEDURE proWithResultView(IN id VARCHAR(10), out o1 customer)LANGUAGE SQLSCRIPT READS SQL DATA WITH RESULT VIEW ProcView ASBEGIN   O1 = SELECT  * FROM CUSTOMER WHERE CUST_ID = :id;END;SELECT * FROM ProcView WITH PARAMETERS('placeholder'=('$$id$$','Jim'));

也许你会问,既然有CALL这种方式,为什么还需要上面这种看似极复杂的调用方式,按照我的理解是因为第二种方式提供了一种更通用的接口,在SAP BO的IDT中可以使用上述方式来调用HANA的PROCEUDRE。