我想从一个过程向一个本地hana变量中插入一个值。请为我建议一个解决方案。
这是我的代码:
Create Procedure "Test1"(IN DocEntry Int)
language SQLSCRIPT
AS
Begin
Declare VehID Nvarchar(3);
Declare Oddo Numeric;
Declare PreDate Date;
Declare CurDate Date;
Declare Log_KM Numeric;
Select"U_AdDate", "U_ItemCode" INTO CurDate, VehID from "@DCC_WORDR" Where "DocEntry" = :DocEntry ;
Select Top 1 "U_AdDate", "U_Log_KM" INTO PreDate, Oddo from "@DCC_WORDR" Where "U_ItemCode" = '358' and "DocEntry" <> :DocEntry Order By "U_AdDate" DESC;
--Select :CurDate, :VehID, :Predate, :Oddo from Dummy;
LogKM := (CALL "TRANSCARGOLTDLIVE"."DCC_Get_KM" (:VehID, :PreDate, :CurDate));
End;
答案 0 :(得分:0)
要通过过程分配变量值,必须使用过程OUT或IN / OUT参数。
因此,您的代码可能如下所示:
Create Procedure "Test1"(IN DocEntry Int)
language SQLSCRIPT
AS
Begin
Declare VehID Nvarchar(3);
Declare Oddo Numeric;
Declare PreDate Date;
Declare CurDate Date;
Declare Log_KM Numeric;
Select "U_AdDate", "U_ItemCode" INTO CurDate, VehID
from "@DCC_WORDR"
Where "DocEntry" = :DocEntry ;
Select Top 1 "U_AdDate", "U_Log_KM" INTO PreDate, Oddo
from "@DCC_WORDR"
Where "U_ItemCode" = '358'
and "DocEntry" <> :DocEntry
Order By "U_AdDate" DESC;
CALL "TRANSCARGOLTDLIVE"."DCC_Get_KM"
(:VehID, :PreDate, :CurDate, :LogKM);
End;
要使其正常工作,DCC_GET_KM过程必须将LogKM参数作为OUT参数。
除此之外,请为自己做一个大忙,并正确地格式化您的SQL语句。此外,当您通过查询分配PreDate和CurDate时,请确保使用合理的值初始化这些变量,以防查询返回空结果集。