質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

12354閲覧

PL/SQL コンパイルエラーの解決方法を教えてください

King_of_Flies

総合スコア382

PL/SQL

PL/SQL (Procedural Language/Structured Query Language) はOracle CorporationによるSQL(非手続き型言語)を手続き型言語に拡張させるために開発されたプログラミング言語です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2017/08/07 02:46

皆様、お疲れ様です。
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

:= .( @
% ;
の記述の意味が良く分かっていません。

原因箇所と思われる場所と、上記記述の解説を
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すいません、変更点が他にもありましたので、質問について保留させてください。

投稿2017/08/07 02:54

King_of_Flies

総合スコア382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

King_of_Flies

2017/08/07 03:06

質問内容を変更します。 show errorで返却されるエラー行は、どのように表示されていますか? 空行を除いて~行目なのか、 コメント行を除いて~行目なのかおしえてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問