SQL*PlusとPL/SQL

慣れないことをするのは、頭の痛いものです。


batファイルから
SQL*plusを呼び出し、PL/SQLを駆使しながら、
更新したりセレクトしたりする処理を作りました。


ただ単にセレクトしてCSVに吐き出すだけなら、
sql*plusでさっくり出来る訳ですが、
値を取り出して編集していれる、とかしなきゃいけなくなってきて、
そこで登場するのがPL/SQLとなるわけです。


苦戦してしまいましたが、大切なことと言えばごくわずかです。


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文に頼ってしまった。


できればいいのです!なんてやってたら、リファクタリング王にはなれませんね。