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;
**最後の2行を削除する:** 'END;' – L30n1d45
テキストエディタを使用すると、 'BEGIN'文を数え、' END'文を数えればそれを見つけることができます( ' IF'または 'CASE'などのステートメント)。 – g00dy
Btwの場合、 'Declare'文にもエラーが発生します。というのも、pl/sqlという名前のプロシージャはそれを使用しません。彼らの「宣言」セクションは、対応するユニットの最初の「BEGIN〜」のすぐ上にあります。 – g00dy