微妙な既存バグが見付かりまして。
ストアドの修正が必要なのでやってたんですが、動確しようとしたときにプチハマりしました。
ずっと使ってるパッケージの作成スクリプトがうまく流れてくれず、sqlファイルを開いて進まなくなりました。
2776とか2777とか数字が出力されてはいたのですが、何の数字かよくわからない。
行数か?とも思いましたが対象ファイルは2772行までしかないので超過しています。
ストアドなんて先輩や上司が作った(直した)もののテストしかしたことないんで、なるほどわからん状態です。
いや業務で中覗いたりすることはあったけど文法とかお作法とかはからっきし。
作る側に回ることなんてなかったもん!と言い訳したくなりました。すまんて。
しばらくCREATE PACKAGE BODY構文を調べながら手元のファイルと見比べてて発見。
末の「/」が抜けていた…ッ!
ク ソ が。
CREATE PACKAGE BODY構文の書き方として、
CREATE [OR REPLACE] PACKAGE BODY パッケージ名 AS[IS]
・
・
処理したいこと
・
・
END
/
と書くっぽいんですが、末にある/が抜けてました。
特に解説とかは見当たらなかったんですが、お作法なんですかね。
ついでに違うファイルを覗いたらshow errorsも抜けてることがわかりました。
コンパイルエラーの内容を出してくれるやつです。
抜けてるというか改修するときだけ付けてんのかな、何分説明とかそういうやり方の資料はないので都度調べるしかありません。
試しに手当たり次第他のパッケージボディ系sqlファイルを覗いてみたら/があったりなかったりshow errorsがあったりなかったり。
うーんこれは…???
よく使う人とかからしたら今回の内容は初歩中の初歩で開いた口が塞がらないレベルな気がします。
これで1時間ぐらい詰まってたんだぜ…。
ぜひとも…ご教示…願いたい…。願いたい……。
いやでもこれ調べてたときに修正箇所見直してミス見付かったので、ある意味よかったのかもしれない。