不正确的语法错误SAP B1 Hana存储过程

2020-08-15 03:19发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我将存储过程(代码)从SQ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我将存储过程(代码)从SQL转换为SAP HANA B1,但在行尾出现错误(语法错误,在";"附近),我不知道在哪里 问题。

注意:在代码中,如果我使用两个End if,End if,则会出现语法错误。

可以帮忙吗? 谢谢

 CREATE PROCEDURE SBO_SP_TransactionNotification(在object_type nvarchar(20)中,


 -SBO对象类型


 在transaction_type nchar(1)中,


 -[A] dd,[U] date,[D] elete,[C] ancel,C [L] ose


 在num_of_cols_in_key int中,


 在list_of_key_cols_tab_del nvarchar(255)中,


 在list_of_cols_val_tab_del nvarchar(255)中)语言SQLSCRIPT AS-返回值


 错误int;  -结果(0表示没有错误)


 error_message nvarchar(200);  -要显示的错误字符串


 


 开始错误:= 0;


 error_message:= N'Ok';


 ---------------------------------------


 如果:object_type = '13'和:('A','U')中的:transaction_type
 然后
 开始
 如果存在(从OINV T0选择SELECT T0。" DocEntry"
 内联接INV1 T1在T0上。" DocEntry" = T1。" DocEntry"
 T0上的内部联接OUSR T2。" UserSign" = T2。" USERID"
 在T0。" UserSign" ='8'AND T1.CogsOcrCod <>'BQ2'AND T0.DocEntry =:list_of_cols_val_tab_del)的情况下,
 错误:= 1002;
 error_message:= N'Choississez中心bQ2';
 万一;
 结束 ;


 


 -----------------------------------------选择返回值


 从哑元中选择:error,:error_message;
 结束 ;
 
1条回答
Baoming ROSE
2020-08-15 03:57 .采纳回答

您好,

几件事,最明显的是,HANA上不支持IF EXISTS(也许在2.0上),并且对交易类型使用IN也不起作用。 您需要使用COUNT并声明该变量。尝试以下操作:

创建过程SBO_SP_TransactionNotification
 (
                在object_type nvarchar(20)中-SBO对象类型
                在transaction_type nchar(1)中,-[A] dd,[U] pdate,[D] elete,[C] ancel,C [L] ose
                在num_of_cols_in_key int中,
                在list_of_key_cols_tab_del nvarchar(255)中,
                在list_of_cols_val_tab_del nvarchar(255)中
 )
 语言SQLSCRIPT
 如
 -返回值
 错误int;  -结果(0表示没有错误)
 error_message nvarchar(200);  -要显示的错误字符串
 控制int
 开始


 错误:= 0;
 控制:= 0;
 error_message:= N'Ok';


 --------------------------------------------------  --------------------------------------------------  ----------------------------


 -在这里添加您的代码


 如果:object_type = N'13'AND(:transaction_type = N'A'OR:transaction_type = N'U')然后
    SELECT IFNULL(COUNT(*),0)进入控件
 从OINV T0
 内联接INV1 T1在T0上。" DocEntry" = T1。" DocEntry"
 T0上的内部联接OUSR T2。" UserSign" = T2。" USERID"
 在T0。" UserSign" ='8'和T1.CogsOcrCod <>'BQ2'和T0.DocEntry =:list_of_cols_val_tab_del;
    如果:control> 0 THEN
                开始
                错误:= 1002;
                error_message:= N'Choississez中心bQ2';
                结束;
    万一;
 万一;


 --------------------------------------------------  --------------------------------------------------  ----------------------------
 -选择返回值
 从哑元中选择:error,:error_message;
 结束;
 

一周热门 更多>