2008年6月19日木曜日

SQL文の整列(タダ)

現在SI試験中。SQLを証跡として取るのだが、乱れているので整列したいとおもいフリーソフトを探す。

結果、SQLFixというツールにたどり着く。
(いろいろあたったが、ダウンロードしようとしたら画面がフリーズしたり、インストールして起動してみたら何にも起こらなかったり。)

このSQLFixも.exeをたたいても何も起こらない。
ReadMeを読むとこんな記述が。

---------------------
[概要]クリップボードの中にあるSQL文をキーワード(SELECT等)毎に改行してくれます。
[使い方]クリップボードにSQL文をコピーし、SQLFixを起動します。その後クリップボードの中身をエディタ等に貼り付けて使用してください。付属のiniファイルをエディタで編集するとキーワードの設定ができます。また行コメント"--",ブロックコメント"/**/"に対応しています。

---------------------

そこでアクセスで作られたSQLをCtrl-Cして、
SQLFix.exeをたたく。
そしてエクセルにCtrl-Vしてみた。

すると、、、↓これが
-----
SELECT TEST_TEST.SY_INDEX_CODE, TEST_TEST.SY_INDEX_NAME_EN,TEST_TEST.SY_ITEM_CODE,TEST_TEST.PROD_CATEGORY, TEST_TEST.SYOJ_CD_FLD1_WRR,TEST_TEST.SYOJ_CD_FLD4_WRR,TEST_TEST.SYM_DEF_FLGFROM TEST_TEST LEFT JOIN TEST_TEST ON TEST_TEST.SY_INDEX_CODE =TEST_TEST.SY_INDEX_CODE;
----------

こうなった
------
SELECT TEST_TEST.SY_INDEX_CODE, TEST_TEST.SY_INDEX_NAME_EN, TEST_TEST.SY_ITEM_CODE, TEST_TEST.PROD_CATEGORY, TEST_TEST.SYOJ_CD_FLD1_WRR, TEST_TEST.SYOJ_CD_FLD4_WRR, TEST_TEST.SYM_DEF_FLGFROM TEST_TESTLEFT JOIN TEST_TESTON TEST_TEST.SY_INDEX_CODE = TEST_TEST.SY_INDEX_CODE;
-------

そういえば、クリップボードの中身ってどうなってるの?っていう疑問から、繋がって↓を発見
[START]-[RUN]でclipbrd.exeを実行。
そうすると中身が見えるClipBook Viewerなるものが表示された。
そこで、下記処理をやって前後のClipBookViewerをチェック。
①SQLを[Ctrl-C],
② SQLFix.exe実行
この①後と②後、中身が変わってるよ!地味にすげー。(すごくない?)

下は、更なるTips。ClipBrdについてもう少し言及。
①クリップボードの中身をのぞき見る方法
http://www.atmarkit.co.jp/fwin2k/win2ktips/103clipbook/103clipbook.html
②少ないメモリを無駄なく使う方法 ― クリップボードにある巨大なデータをクリアする ―
http://www.atmarkit.co.jp/fwin2k/win2ktips/102clipclear/102clipclear.html
②は、タイトルに興味を示し、観てみたけど結論が
クリップボードに転送されたデータは、次のデータが転送されるまでは残されたままになる。特別なツールでも用意しないかぎり、これをきれいにクリアする方法はない。しかし逆に言えば、次のデータを転送すれば、前のデータはメモリから削除されるので、原始的な方法でよければ、ほぼクリアするのと同等の措置を施すことができる。つまり、ごく小さなデータをわざとクリップボードに転送するのだ
と、いたくごもっともな結論で拍子抜け。そんなの当たり前じゃないか。

0 件のコメント: