皆様、お疲れ様です。
Takkoです。
現在PL/SQLで開発をしております。
下記コードを追加し、コンパイル⇒show errorをSQL plusで実行したところ下記エラーが表示されました。
sql
1305/15 PLS-00103: 記号"IS"が見つかりました。 次のうちの1つが入るとき: 2 := . ( @ 3 % ; not null range default character 4 5317/3 PLS-00103: 記号"CURSOR"が見つかりました。 6 次のうちの1つが入るとき: 7 end 8 not pragma final instantiable order overriding static member 9 constructor map
対象となる行のコードは下記になります。
/* *-------------------------------------------------------------------------------- *機能概要 : *作成者 : *作成日 : 2017/07/28 *-------------------------------------------------------------------------------- */ PROCEDURE HogeProcedure IS --更新条件の取得結果を格納する変数の宣言。ホゲ1、ホゲ2、ホゲ3を格納する。 pHoge1 VARCHAR2(6); pHoge2 DATE; pHoge3 DATE; --pHoge1の取得 CORSOR cur1 IS SELECT MIN(Hoge1) FROM tm_Hoge_Mst WHERE Id = '2' AND DelFlg IS NULL; BEGIN OPEN cur1; FETCH cur1 INTO pHoge1; CLOSE cur1; END; --Hoge2の取得 --略 --Hoge3の取得 --略 --Hogeマスタ更新処理 BEGIN UPDATE td_Hoge_Mst --略 Where Hoge1 = pHoge1 And Hoge2= pHoge2 And Hoge3 = pHoge3 END;
今回機能追加と言うことでHogePurocedureを実装しました。
それ以外の修正箇所はパッケージ作成にHogePurocedureの実装と、
main処理でHogePurocedureの呼び出し宣言をしているのみなので
省略させていただきます。
show errorのコマンドで出力されたエラー内容を調べてみた結果、
not null range default character
⇒null以外のデフォルト文字が見つかりました。
not pragma final instantiable order overriding static member
constructor map
⇒プラグマではない最終的なインスタンス化可能なオーダー
コンストラクタマップ
ということは調べてみて分かりました。
二番目のエラーについては下記記述に変更し対応したのですが、
一番目のエラーについては原因箇所が分かっていません。
PL/SQL
1/* 2 *-------------------------------------------------------------------------------- 3 *機能概要 : 4 *作成者 : 5 *作成日 : 2017/07/28 6 *-------------------------------------------------------------------------------- 7 */ 8 PROCEDURE HogeProcedure IS 9 --pHoge1の取得 10 CORSOR cur1 IS 11 SELECT MIN(Hoge1) 12 FROM tm_Hoge_Mst 13 WHERE Id = '2' 14 AND DelFlg IS NULL; 15 pHoge1 VARCHAR2(6); --変更行 16 BEGIN 17 OPEN cur1; 18 FETCH cur1 INTO pHoge1; 19 CLOSE cur1; 20 END; 21 22 --Hoge2の取得 23 --略(CURSOR cur1のように変数を記述) 24 25 --Hoge3の取得 26 --略(CURSOR cur1のように変数を記述) 27 28 --Hogeマスタ更新処理 29 BEGIN 30 UPDATE td_Hoge_Mst 31 --略 32 Where Hoge1 = pHoge1 33 And Hoge2= pHoge2 34 And Hoge3 = pHoge3 35 END; 36
特に出力されたエラー内容の
305/15 PLS-00103: 記号"IS"が見つかりました。 次のうちの1つが入るとき: := . ( @ % ; not null range default character
:= .( @
% ;
の記述の意味が良く分かっていません。
原因箇所と思われる場所と、上記記述の解説を
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/07 03:06