SQL*PlusとPL/SQL
慣れないことをするのは、頭の痛いものです。
batファイルから
SQL*plusを呼び出し、PL/SQLを駆使しながら、
更新したりセレクトしたりする処理を作りました。
ただ単にセレクトしてCSVに吐き出すだけなら、
sql*plusでさっくり出来る訳ですが、
値を取り出して編集していれる、とかしなきゃいけなくなってきて、
そこで登場するのがPL/SQLとなるわけです。
苦戦してしまいましたが、大切なことと言えばごくわずかです。
-- ①PL/SQLとsql*plusで共有する変数はここに定義 DECLARE -- ②PL/SQLで使用する変数 -- number, varchar2など BEGIN -- ①にデータを入れるときは、 -- SELECT data INTO :① -- ②にデータを入れるときは、 -- SELECT data INTO ② END
こんな感じですね。
業務用で急いでなかったら、ここをじっくり読みたい。
http://www.shift-the-oracle.com/plsql/plsql-block-comment.html
デバック法としては、
SPOOL して、変数は、PRINTで出した方が、
私的にはわかりやすかった。
SELECT COUNT(*)
でゼロだったときに値が帰ってこなくて、結局わからんくて、
CASE文に頼ってしまった。
できればいいのです!なんてやってたら、リファクタリング王にはなれませんね。