<%@ page contentType="text/html; charset=Shift_JIS" %> ■ ■AutoSQLIndent ReadMe■ ■
■□■ AutoSQLIndent ■□■
 ReadMe
カウンタ

<MAIL> :

【はじめに】

 「AutoSQLIndent」 は、Webブラウザ上で動作するJavaScript(フリー)で、SQL文に対してインデント操作を実行して整形することができます。 ここは「AutoSQLIndent」 についての説明を載せたページです。

LastUpdate:2007/01/21 _ Written By:Seiji Tsubosaki

【概要】

 データベースを使用するアプリケーション開発では、実行したSQL文をログファイルやログテーブルに書出す と言ったことを頻繁に行いますが、そのほとんどが無造作なSQL文をそのまま書出しているだけです。 ログ解析者はこれらSQL文を解析する際、少しでもSQL文を見易くする為に、手作業(※テキストエディタによる文字列置換) によるSQL文整形作業を行うことでしょう。SQL文整形作業を軽減させる目的で 「AutoSQLIndent」 が生まれました。

 「AutoSQLIndent」 は、表結合、インラインビュー、副問合せ、集合演算子を含むSELECT文はもちろんのこと、INSERT文、DELETE文、MERGE文などのDML文、CREATE TABLE等のDDL文にも対応しています。 とにもかくにも動作確認してみたい方は こちら

【DownLoad】

 「AutoSQLIndent」 のダウンロードはhttp://www.vector.co.jp/soft/winnt/business/se420657.htmlです。 最新バージョンは です。

【使用方法】

 動作確認はWindows XP、2000で行いました。ダウンロードしたLZHファイルをPC内で解凍して下さい。 「AutoSQLIndent」 はWebブラウザ上で機能するソフトですが、 HTTPプロトコルを意識する必要がなく、解凍してできた AutoSQLIndent.html をブラウザで開けばすぐ利用できます。特別なインストール手順はありません (ActiveXは有効である必要があります。) 。 アンインストールはインストールしたフォルダを直接削除するだけです。

※JavaScript作成時に、SQLの予約語をXMLファイルにしてAjaxのXMLHttpRequestを利用しようと試みました。 しかし、ブラウザが “Internet Explorer 6.0 SP2.0“の場合は、XML文章をJavaScriptに読み込ませる為に HTTPプロトコルを意識する必要が出てきます。これは、HTTPサーバーのソフトを使うか、 WindowsXPにてIISの設定を行うことで解決できるのですが、できるなら 通常のWindowsマシンで特別な設定なくHTMLファイルを開くだけで即座に利用できるソフトを理想としました。 SQLの予約語は全てJavaScript内に直接埋め込んでいます。 「AutoSQLIndent」 は、HTMLとJavaScriptだけで構成されているソフトです。

【機能説明】

  AutoSQLIndent.html の機能を説明します。 AutoSQLIndent.html をブラウザで開き、各種ボタン等を触りながら機能の確認をしてみて下さい。

§SQL文の整形
“SQLテキストエリア“内のSQLに対してインデント操作を実行します。 実行結果は“SQLテキストエリア“内に表示していたSQLと置き換えて表示します。
ブラウザで表示している 「AutoSQLIndent」 自体をリロードします。“SQLテキストエリア“内のSQLをクリアし、“変換オプション“も初期設定に戻します。
ブラウザを閉じて「AutoSQLIndent」 を終了します。

§SQLテキストエリアのサイズ変更
Rows:?/Cols:?
“SQLテキストエリア“内の行数と列数をRows、Colsで表示します。
“SQLテキストエリア“内の行数と列数を初期値に戻します。 初期値は『Rows:20/Cols:80』です。
“SQLテキストエリア“内の行数を10増やします。
“SQLテキストエリア“内の行数を10減らします。但し、行数を10より少なくすることはできなくなっています。
“SQLテキストエリア“内の列数を10増やします。
“SQLテキストエリア“内の列数を10減らします。但し、列数を10より少なくすることはできなくなっています。

§SQLテキストエリア
SQL文を記載するスペースです。行数と列数の初期値は『Rows:20/Cols:80』としていますが、 “行の拡大・縮小“ボタンや“列の拡大・縮小“ ボタンを押下することでテキストエリアをサイズ変更することができます。 この行数と列数は入力スペースの表示サイズを決める縦横幅を指し示しているだけで、 入力文字数を制限しているわけではありません(※テキストエリアへの入力文字数の制限は行っていません。)。

§変換オプション
大文字に変換する
小文字に変換する
変換しない
SQL文をインデントした結果を“大文字/小文字“のどちらかに統一することができます。 もちろん“変換しない“を選択することもできます。
初期値は 『大文字』 への統一です。
※ここで指定した“大文字/小文字“の変換は以下のいずれかに該当する箇所には適用されません。
・「'」に挟まれる文字列の一部である場合
・「"」に挟まれる文字列の一部である場合
・「/*」と「*/」に挟まれる文字列の一部である場合
・「--」と、その後ろに現れる最初の改行に挟まれる文字列の一部である場合
「,」カンマを行頭に配置する
「,」カンマを行末に配置する
SQL文をインデントする際に、カンマを“行頭/行末“のどちらに配置するか指定することができます。 初期値は 『行頭』 への配置です。
WHERE句の「AND」、「OR」を行頭に配置する
WHERE句の「AND」、「OR」を行末に配置する
SQL文をインデントする際に、WHERE句の「AND」、「OR」を&ldquo行頭/行末“のどちらに配置するか指定することができます。 初期値は 『行頭』 への配置です。
タブ数     SQL文をインデントする際に使用する字下げ数を自由に選択することができます。 初期値は 『タブ数=4』 です。

【テストケース】

 最新バージョンの動作確認に使用したSQL文を こちら にまとめました。 「AutoSQLIndent」 のSQL文整形ロジックを垣間見ることができるでしょう。

【作者の独言】

 整形するSQL文はOracle10G上で機能するSQL文を意識しているので、現バージョンの 「AutoSQLIndent」 では、その他のデータベース特有のSQL文に対する整形処理がうまく機能しないかもしれません。しかし、いずれPostgreSQL、MySQL等のSQL文にも対応したいと考えています。

 機能しないSQL文自体をきれいに整形できないかもしれませんが、ご了承下さい(【例】SELECT文なのにFROM句が無い等)。

 「AutoSQLIndent」 の整形処理は、単純な文字列置換の繰り返しではありません。SQL文を一文字単位で分解して少々複雑な作業をJavaScriptで実施しています。 不具合等を発見した場合は、使用したSQL文と一緒にメールにて連絡頂ければ、今後のバージョンアップ時に対応を考えたいと思います。ご協力頂ければ、 「AutoSQLIndent」 が単なるSQL文の整形ツールではなく、今後開発されるシステムにおけるSQL文コーディング規約そのものになれるかもしれません。

 複雑怪奇なSQL文や、作者が未テストのSQL文では予想に反する整形結果になる場合があるかもしれません。今後のバージョンアップに期待して下さい。 「AutoSQLIndent」 は未来永劫フリーソフトです。

【免責】

本プログラムを使用した結果によって生まれたいかなる損害に対しても作者は責任を負いません。

【Old Version Download】

Ver1.00 (2007/01/06)