Databaseを中心としたDatabaseに関わる技術情報を発信します。2日目のエントリです。みなさんにとっての2013年はどのような年だったでしょうか。以外のRDBMSを使用する割合が増えたことが印象に残っています。良いところや悪いところに気づかされます。PostgreSQLやMySQLが提供する機能で気に入ったものもいくつかあります。細かいところで恐縮ですが、PostgreSQLのCUIクライアントであるpsqlの\xや、MySQLのCUIクライアントであるmysqlの\Gは、SQL*Plusでも欲しい機能です。これらの機能は、SELECT文で得られる結果セット表示を縦表示にするものです。文章で説明するよりも実際に見た方が早いと思いますので、以下にpsqlとmysqlの実行結果を示します。sec)展開表示機能は、結果セットの列数が多いときわめて有用です。optionsに接続されました。Scriptに含まれるpr.sqlを使うのがオススメです。さんが作成したprint_tableを再実装した位置づけになります。oraclePL/SQLプロシージャが正常に完了しました。Script同梱のlogin.sqlを実行したセッションで、SELECT文の実行後にpr.sqlを実行するだけです。pr.sqlですが、どうやって実装しているかが気になります。いうことで、スクリプトを読んでみましたが・・・・最初は何をやっているのかさっぱり理解できませんでした。冒頭の以下の箇所はstoreコマンドを使用して、SQL*Plusの設定を一時ファイルに保管している処理です。on最初さっぱり何をやっているのかさっぱりわからなかったのが以下の箇所です。varchar2(4000);;考えてもわからず、隣の席の同僚に相談したら疑問が氷解しました。行頭の数字は、SQL*Plusのバッファ操作のためのものでした。行頭に"999999"があるコマンドはバッファの末尾にコマンドを追加する操作に対応します。B71396-01新しい行の追加カレント行の後に新しい行を挿入するには、INPUTコマンドを使用します。行1の前に行を挿入するには、0(ゼロ)を入力し、その後にテキストを続けます。その行がバッファの先頭に挿入され、すべての行が再度1から番号付けされます。EMPLOYEE_ID実際に1行1行コマンドを打つとわかりやすいです。←★コマンドがバッファの末尾に追加されたこのようなバッファ操作を行うことで、バッファに無名PL/SQLブロックを構成する一連のコマンドを格納しています。行末に";"を含むコマンドをバッファに格納するため、行末に";;"を指定していることに注意してください。マニュアルからは確認できませんでしたが、このような工夫が必要なようです。行頭に数字がついていない"/"の箇所で、バッファに格納された無名PL/SQLブロックを実行しています。ちなみに、SQLバッファを用いて組み立てた無名PL/SQLブロックの処理の概要は、CLOB型のcという変数に格納されたSQLコマンドをDBMS_SQLパッケージを使って実行し、列の値を整形しながら表示するものです。10.2で導入された「独自のデリミタ文字」を使用しています。ついてご紹介していました。scriptsの導入とi.sqlhttp://co-sol.jp/techdb/2012/12/tpt_scripts_and_i_sql.html2年連続で、ネタをお借りしてしまいました。12:00に投稿されたエントリーのページです。