[英]How to Create Stored Procedure in DB2 with Data Studio 4.1.3 client
CREATE OR REPLACE PROCEDURE SPLoginAuditHistory_Login
(
IN @Menuid int,
IN @UserID numeric,
IN @UserName varchar,
OUT @Result int
)
DYNAMIC RESULT SETS 1
P1: BEGIN
DECLARE @err int;
BEGIN TRANSACTION
BEGIN
INSERT INTO Login_Audit_History(Menuid,UserID,UserName,LoginTime)
VALUES(@Menuid,@UserID,@UserName,Current DATE)
END
SELECT @err=@@Error if @err<>0 goto Fail
SELECT @Result=0
COMMIT TRANSACTION
RETURN
Fail:
SELECT @Result=1
ROLLBACK TRANSACTION
RETURN
END P1;
您的問題與IBM Data Studio無關,而是與了解Db2過程SQL語法有關。
如果Db2服務器在Linux / Unix或Microsoft-Windows上運行,則配置正確后,您可以使用ANSI SQL PL語法或Oracle風格的PL SQL語法編寫SQL過程。
您的語法不符合Db2-LUW可以理解的兩種SQL風格。
如果要從其他RDBMS遷移代碼,請花時間了解不同供應商提供的用於遷移到Db2的轉換工具。
下面是您的一些錯誤,因此對於每個錯誤,請研究正確的Db2文檔,直到您了解需要什么為止:
變量名不能以@開頭
如果要返回結果集,則必須顯式定義並打開游標,然后再從存儲過程中返回
存儲過程的末尾需要與分號不同的定界符。 例如,許多人使用@或! 指示復合SQL塊的結尾。 您需要配置GUI來告訴它使用哪個定界符。
從 Db2服務器隨附的示例中學習,這些示例也在線(請確保使用正確版本的Db2文檔來匹配您的Db2服務器版本和平台)。 對於Db2 Linux / Windows v11.1,示例在此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.