PL/SQLフォーマッター
Oracle開発者向けに、q'[...]'形式の代替引用符、N''文字列、二重引用符で囲まれた識別子、:bind変数、SQL*Plusでブロックを実行するスラッシュなど、Oracleのルールに従ってOracle SQLとPL/SQLを整形します。CONNECT BY、START WITH、RETURNING、MINUSは句として保持し、IFやLOOPを含むBEGINとENDのブロックをインデントします。閉じていない文字列や括弧は、行と列を示して報告します。
よくある質問
どのようなOracle構文に対応していますか?
引用符を重ねた単一引用符の文字列、q'[it's]'やq'{...}'のような代替引用符、N''の各国語文字列を認識します。二重引用符で囲まれた識別子、emp#のような#や$を含む名前、:bind変数、:=による代入もそのまま保持されます。
PL/SQLブロックを整形できますか?
はい。BEGINとENDのセクション、IF THEN ELSE END IF、CASE、LOOPの構文をインデントし、各文を別々の行に配置します。BEGINより前の宣言は、それぞれ独立した文として保持されます。
スラッシュの行はどうなりますか?
/のみを含む行は、SQL*PlusとSQLclで直前のブロックを実行するため、独立した行に保持されます。その前後のブロックを区切ります。
Oracleの句はどれが独立した行になりますか?
階層クエリではCONNECT BYとSTART WITHを句として保持します。RETURNING句とMINUS集合演算子は、SELECT、FROM、WHERE、GROUP BY、ORDER BYなどの標準的な句と同様に処理します。
MERGE に対応していますか?
はい。WHEN MATCHED THENとWHEN NOT MATCHED THENの各分岐は改行されるため、OracleのMERGE文を読みやすく保てます。
コメントは保持されますか?
はい。--行コメントと/*ブロックコメント*/は位置を保ちます。/*+ INDEX(e) */のようなオプティマイザヒントは、入力どおりに保持されます。
キーワードの大文字と小文字は変わりますか?
いいえ。キーワードと識別子の大文字・小文字は入力時のまま保持されます。引用符で囲まれていないOracleの名前では大文字・小文字が区別されませんが、引用符で囲まれた名前では区別されます。どちらもそのまま保持されます。
どのようなエラーが検出されますか?
閉じていない文字列、代替引用符、引用符で囲まれた識別子、ブロックコメント、対応していない括弧を、それぞれ行と列を示して報告します。パッケージと文法はコンパイルされません。
入力の最大サイズはどれくらいですか?
1リクエストあたり最大1 MB、文またはブロックあたり最大128 KBです。大きなパッケージは分割して整形できます。
インデントを選べますか?また、コードは保存されますか?
スペース2つ、スペース4つ、またはタブを使用できます。コードはメモリ上でのみ整形され、保存されることはありません。