お疲れ様です。
takkoです。
PL/SQLのコンパイルでshow errorをするとエラー行数が返却されますが、
このエラー行はコメントブロックを含めない行数ということがわかり、
実際に出力されたエラー行=エラーの箇所とはならないことが分かりました。
皆様はこの事象をどうやって対応していますか?
作成したPL/SQLのコードのコピーファイルからコメントブロックを削除したりしているのでしょうか?
少し気になりましたので、どのような対応をしているのか教えていただけたらと思います。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ベストアンサー
お疲れ様です。
そういう事ですか。。。
念のため、Oracle 12cでコメントブロック /* */の行がカウントされないかどうか確認してみましたが、やっぱり12cでは、コメントブロックでも問題なくカウントされるようです。
では、改修したソースです。
ころらでは、いかがでしょうか?
javascript
1// 選択範囲の文字列の中で、空白行とコメントブロックを飛ばす、 2// ※コメントブロック・・・/* */で囲まれる行 3function line_shaping(text) { 4 5 var text = text.replace(/\r\n|\r/g, "\n"); 6 7 var lines = text.split( '\n' ); 8 var outArray = new Array(); 9 10 var flg = false; 11 var str = ""; 12 var str2 = ""; 13 14 for ( var i = 0; i < lines.length; i++ ) { 15 16 // 空行の場合は飛ばす 17 if ( lines[i] == '' ) { 18 continue; 19 } 20 21 str = lines[i]; 22 str2 = str.replace(/^\s+|\s+$/g,''); 23 24 // 空行と先頭が"/*"で始まる場合 25 if ( str2.indexOf("/*") === 0) { 26 flg = true; 27 } 28 29 if (str.indexOf("*/") >= 0) { 30 // 空行と先頭が"/*"で始まる場合 31 flg = false; 32 continue; 33 } 34 35 if ( flg == true ) { 36 continue; 37 } 38 39 outArray.push( lines[i] ); 40 41 } 42 43 str = outArray.join('\r\n'); 44 return str; 45 46} 47 48// 選択範囲のテキストを取得 49var text = Editor.GetSelectedString(0); 50// 変換後のテキストを出力 51if ( text !== "" ) Editor.InsText(line_shaping(text));
投稿2017/08/08 15:10

退会済みユーザー
総合スコア0
0
takkoさん、お待たせしました。
マクロ作成しましたよ。
これで、使えますかね?
javascriot
1// 選択範囲の文字列の中で、空白行とコメント行を飛ばす、 2// ※コメント行・・・先頭が'--'で始まる行 3function line_shaping(text) { 4 5 var text = text.replace(/\r\n|\r/g, "\n"); 6 7 var lines = text.split( '\n' ); 8 var outArray = new Array(); 9 10 for ( var i = 0; i < lines.length; i++ ) { 11 12 // 空行と先頭が"--"で始まる行は飛ばす 13 if ( lines[i] == '' || lines[i].indexOf("--") === 0) { 14 continue; 15 } 16 17 outArray.push( lines[i] ); 18 } 19 20 str = outArray.join('\r\n'); 21 return str; 22 23} 24 25// 選択範囲のテキストを取得 26var text = Editor.GetSelectedString(0); 27// 変換後のテキストを出力 28if ( text !== "" ) Editor.InsText(line_shaping(text));
このソースを、line_shaping.jpか何かの名前で保存して、サクラエディタのマクロとして実行して下さい。
サクラエディタでマクロを設定する方法はわかりますか?
もし、よくわからなければ、こちらのサイトが参考になると思います。
サクラエディタ マクロを開発してみる
というか、ソース自体もこのサイトの大文字・小文字変換のプログラムを改造したものです。
投稿2017/08/07 11:01

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
takko様
まずひとつお聞きしたいのですが、Oracleのバージョンは何でしょうか?
当方、自宅PCのOracle 12cにてPL/SQLのエラーの行数を調べてみましたが、空白行、コメント行は飛ばされませんでした。
また、もしエディタにコピーして、それで空白行とコメント行をと飛ばせばいいのであれば、例えば、サクラエディタのマクロか何かで自作するのもいいのかなと思うんです。
サクラエディタのマクロってご存知ですか?
エディタは何を使っていますか?
エディタ教えて頂ければ、当方で簡単なマクロ作ってみようかと思いますが。。。
投稿2017/08/07 06:13

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2017/08/07 07:15

0
こんにちは。
show error では、ブロックコメント以外に空白行もカウントしません。
行コメント(--)はカウントされるので、こちらを使用すると良いと思います。
投稿2017/08/07 04:23
総合スコア25426
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。