commentほとんどのプログラム言語では大量のコピペはダメなソースコードの典型であるものの、SQLでは大量のコピペが平気で行われている。付属するSQLPlusでは以下のコマンドが使えるので、バッチ・プログラムのようなSQLPlusからSQLを発行するようなプログラムでは、これらを使うことでコピペを大きく減らすことができる。変数を未定義にするたとえば年月ごとの表領域を4個作りたい場合、以下のようにできる。00:00:00.35たとえばパーティションする列が同じ表を複数作りたい場合、以下のようにできる。(20110900))一つの完全なSQLを呼び出すのに@を使っている人は少なくないけど、こうやって一部だけでも使えるので、PCTFREEとかSTORAGEとか使える場面はけっこう多い。いうわけで、@とDEFINEを使うことでコピペをどのように減らせるかはなんとなく分かってもらえただろう。201108/正解は以下の4つの表である。2011年8月分のデータが入ったT201105表2011年8月分のデータが入ったT201106表2011年8月分のデータが入ったT201107表2011年8月分のデータが入ったT201108表ステップごとに説明しよう。divide.sqlの全ての&range.はcrets.sqlの9行目でDEFINEされた値、201108で置き換えられてしまう。すべきっぽいが、UNDEFINEするとこのSQLは動作しないことを後ほど説明する。ts201108AS@sel201108その直後に@sel201108が展開される。'201108%'8行目に入ると、3/4行目の&range.は8行目で定義された値、201105に置き換えられるが、@は展開されたままで変数は置き換えられない。T201108表が作られてしまう。先ほど指摘したUNDEFINEを使うとどうなるだろうか。SELECTキーワードがありません。SELECTキーワードがありません。undef_divide.sqlの10行目に来る前に8行目が評価され、この時点では&range.は未定義なので空文字となってしまい、そんなファイルはないと怒られてしまう。やりたいことを正しく実行するには以下のように記述する。201108もっとも簡単な例でクセをまとめておく。以下のSQLは2が返る。2/以下のSQLではf1.sqlが実行される。SQLで言うDISTINCT句、つまり重複するデータを取り除いてデータの種類だけ表示する方法が分からす四苦八苦してしまったのでメモ。Commentよく分からないで使っている日本語のひとつが、「使用」と「利用」である。いうわけで辞書を引いてみた。CommentsCONNECTメソッドが有効なHTTPプロキシ・サーバーがある場合、SSHが直接外部に出られない環境でもHTTPプロキシ・サーバー経由で外部に出ることができる。それぞれ別々にパスワード管理していると面倒なので、LDAPで一元管理している。いうエラーでフリーズしてしまったものの、ついに解決策を見つけた。見解を反映しているわけがありません。Blogメール・アドレスを入力すると、新規投稿のお知らせを受け取れます。