# 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つ、またはタブを使用できます。コードはメモリ上でのみ整形され、保存されることはありません。

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
