ホルン吹きでSEなブログ

趣味でホルン吹き、仕事でSEやってます

PL/SQLのログ出力の話

f:id:t910827:20170821201054p:plain


こんにちは。
タイトルについて。


夏休み明け、思ったより仕事がありませんでした。
設計者が全然進めてなくて、さらに今日から夏休みらしいです。ふざけんな!


↓記事で書いたように、ストアドを作成中なのです。

www.hornengineer.site


80%の仕様は決まっているのですが、チョイチョイ矛盾してたりで、
「夏休み明けには設計終わらせときますよ~」
といっていたのに、

まだ85%だよ!!!

f:id:t910827:20170821202808p:plain:w400


にっちもさっちもいかないよ!俺にどうしろってんだよ!

と思いながらも進んだ5%部分である、ログ出力に取り掛かりました。

ええ、ここから本題です。

f:id:t910827:20170821204004p:plain
~設計書ローディング完了~

現行だと正常終了か、エラー終了かが分からない。ふむふむ。

そのために今回の焼き直しではエラー時にログを出力するようにする。なるほどなるほど。

おぉ!エラー時のメッセージが追加されてる!やったるで!


・・・


・・・( ^ω^)??


何を使って出力させるのか書いてないお( ^ω^)

( ^ω^)「すいません、ログ出力の内容は分かったんですけど、何を使うんですか?」
開発リーダ「あーこれ、設計者が『分からねえ』とか言ってたんですよ」
( ^ω^)「アッハイ じゃあ遊びでいろいろ試しておきます」



ってなやり取りがあって調べてみました。
↓参考のサイト様
Oracle クロニクル

こちらの2-3にこんなことが書いてありました。

■ 2-3) UTL_FILEパッケージを利用した実装方法

Oracleの組み込みパッケージであるUTL_FILEパッケージから、 ファイル入出力を行う機能が提供されています。これを利用することでログをファイルに出力することができます。


ほうほう。初めて見るヤツだ。

UTL_FILE_DIRというパラメータにディレクトリを設定し、
ファイル名やメッセージPL/SQL内で定義。
UTL_FILE.FOPENでファイルを開いて
UTL_FILE.PUT_LINEで書き込み、
最後にUTL_FILE.FCLOSEでファイルを閉じてやるらしい。

なんだ、簡単そうじゃないか!


しかし・・・


f:id:t910827:20170821205509p:plain:w400



最初のUTL_FILE_DIRの設定で権限がないとのエラー。
実行ユーザの権限を調べてみるも、なーーーんにも許可されていなかった。


権限周りをイジっちゃうとトラブルの元になるため、リーダに相談してみる。


( ^ω^)「アノ、権限がなくてUTL_FILE使う方法だとファイル吐けないっす。変えちゃっていいんすかね」
開発リーダ「あ!なんかね!ログ出さなくていいかもだって!


( ^ω^)「えっ」
開発リーダ「Oracleのユーザとサーバのユーザって違うので(つまり権限がない)、そこにファイル出力ねじ込むのどうなのって話になっててね」


( ^ω^)「えっ」
開発リーダ「なので気にせず、他のことやっていいですよ


( ^ω^)「手が空いてるので、他の方法探して手札増やしておきます」
開発リーダ「じゃ、そんな感じで!
( ^ω^)「あいっす」





・・・・ということになりました。
明日、SPOOLで出来ないか試してみようっと!