2017-08-04 73 views
0

我想创建存储过程但未能创建。我的代码:SAP HANA 2.0中的存储过程插入参数

CREATE PROCEDURE "TESTING"."SCALAR_VARIABLE_EXAMPLE_INSERT" (IN paramin NVARCHAR(5000)) 
       LANGUAGE SQLSCRIPT 
       SQL SECURITY INVOKER 
       AS 
BEGIN 
/***************************** 
       Write your procedure logic 
*****************************/ 
       DECLARE username varchar(20) := 'bobbyss'; 
       DECLARE description varchar(100); 

       description := 'select JSON_VALUE('''||:paramin||''', ''$.description'') AS "desc" from DUMMY'; 

       INSERT INTO "TESTING"."USER" 
       VALUES (:username, :description); 

END; 

当我把这个过程,显示SQL语法错误:附近的语法不正确“选择”

如何解决这个问题?谢谢。

回答

1

你的语法是错误的,这里是一个工作示例:

create table test_user (username nvarchar(20), description nvarchar(100)); 
CREATE PROCEDURE SCALAR_VARIABLE_EXAMPLE_INSERT (IN paramin NVARCHAR(5000)) 
       LANGUAGE SQLSCRIPT 
       SQL SECURITY INVOKER 
       AS 
BEGIN 
/***************************** 
       Write your procedure logic 
*****************************/ 
       DECLARE username varchar(20) := 'bobbyss'; 
       DECLARE description varchar(100); 

       select JSON_VALUE(:paramin, '$.description') into description from DUMMY; 

       INSERT INTO test_user 
       VALUES (:username, :description); 

END; 

call SCALAR_VARIABLE_EXAMPLE_INSERT('{"description":"Test Description..."}'); 
select * from test_user; 
+0

错误显示:无法执行 '称之为 “测试” .SCALAR_VARIABLE_EXAMPLE_INSERT()' SAP DBTech JDBC:[1281]:错误的号码或调用中的参数类型:PARAMIN未绑定:第1行col 16(位于15) –

+0

如何修复此错误?谢谢 –