0
使用sql開發者。我是PLSQl的新手。我嘗試了很多已經提出的解決方案,還有一些還沒有提出建議。似乎我得到「結束」或「開始」PLS-00103錯誤。以下是代碼。預先感謝任何幫助 - 非常感謝。獲取錯誤(42,1):PLS-00103:在PlSQL代碼中遇到符號「END」。
CREATE OR REPLACE PROCEDURE PROCEDURE1
(
category_id in Messages.category_id%type,
messagetext in Messages.messagetext%type,
lastupdatedBy in Messages.lastupdatedBy%type,
message_id out Messages.message_id%type,
txtcomment out varchar2)
as
BEGIN
Declare uniquecategoryid number := 0;
uniquemsgid number := 0;
BEGIN
-- verify that category id is a valid category
SELECT Categories.category_id
INTO uniquecategoryid
FROM Categories
WHERE Categories.category_id = PROCEDURE1.category_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
uniquecategoryid := 0;
END;
BEGIN
SELECT message_id into uniquemsgid
FROM Messages
where Messages.messagetext = PROCEDURE1.messagetext
AND uniquecategoryid > 0;
EXCEPTION
WHEN NO_DATA_FOUND THEN
uniquecategoryid := 0;
END;
Begin
INSERT INTO Messages (CATEGORY_ID, messagetext, lastupdatedby, lastupdated, status)
VALUES (PROCEDURE1.category_id, PROCEDURE1.messagetext,
PROCEDURE1.lastupdatedBy, SYSDATE,'A')
returning Messages.message_id INTO PROCEDURE1.message_id;
COMMIT;
PROCEDURE1.txtcomment := 'SUCCESS';
end;
END;
END PROCEDURE1;
**刪除第二行:**'END;' – L30n1d45
使用文本編輯器 - 計算'BEGIN'語句,然後計算'END'語句,您會發現它(因爲您沒有' IF'或'CASE'等聲明)。 – g00dy
順便說一句,你還會在'Declare'語句中得到一個錯誤,因爲名爲pl/sql的函數過程不使用它。他們的「聲明」部分就在相應單元的第一個「BEGIN」之上。 – g00dy