プロシジャの定義方法について
- rdbddlexコマンドで以下の定義文を実行すると「qdg12226e:ルーチン定義の実行で重症エラーを検出しました 詳細メッセージ='JYP8635E "INTEGER"の前後にセミコロンが指定されていません.」というエラーになります。対処方法を教えてください。
[定義文]
CREATE PROCEDURE S.P1(IN PARA1 INTEGER)
BEGIN
DECLARE A INTEGER ;
SET A = PARA1 + 1 ;
INSERT INTO T1(C_ID, U_NO, S_CODE)
VALUES ('IDxxxxxx', A, '0001') ;
END ;
- プロシジャルーチンを定義するときは、プロシジャルーチンの前後を"EXEC SQL"と"END-EXEC;"で囲って、定義します。
このため、質問の定義文では、"BEGIN ~ END;"におけるENDの後のセミコロン(;)は不要となります。
以下にプロシジャルーチン定義文を記述します。
EXEC SQL
CREATE PROCEDURE S.P1(IN PARA1 INTEGER)
BEGIN
DECLARE A INTEGER ;
SET A = PARA1 + 1 ;
INSERT INTO T1(C_ID, U_NO, S_CODE)
VALUES ('IDxxxxxx', A, '0001') ;
END
END-EXEC ;<なお、プロシジャルーチン定義時(rdbddlex)は、以下のように-xオプションを指定してコマンドを実行することが必要です。
rdbddlex -d データベース名 -x 入力ファイル
製品・サービス区分 | Symfoware | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 設計/開発 |