SQL*Plus に関する制限値
SQL*Plus と文字コード(漢字コード)
SQL*Plus はクライアントの文字コードとして UNICODE (Japanese_Japan.AL32UTF8) をサポートしていない。(〜Oracle 10g)
UNICODE(UTF8) を使用した漢字を含む文字コードを利用したファイルを実行する場合には iSQL*Plus を使用するか、UNICODE に対応したツールを利用する。(Oracle の Java ベースの SQL Developer も UTF-8 ファイルに対応していないみたい:どこかの設定にあるかも)
SQL*Plus での制限事項
項目 | 上限値 |
ファイル名の長さ | システム依存 |
├ Windows NT 系 | 255 文字 |
└ Linux(32bit) | 255 バイト*1 |
ユーザー名の長さ | 30 バイト 128 バイト |
置換変数名 の長さ | 30 バイト 128 バイト |
置換変数値の長さ | 240 バイト(文字) |
パラメータ変数値の長さ | 239 バイト(文字) |
置換変数の最大数 | 2,048 |
ACCEPT 文字列の最大長 | 240 バイト |
コマンドラインの長さ | 2,500 文字 5,000 文字 |
変数置換後の SQL(PL/SQL) コマンドラインのサイズ | 3,000 文字 |
1 つのSQL コマンドの行数 | 500 行 (1 行 80 文字の場合) |
LONG | 2,000,000,000 バイト |
LONGCHUNKSIZE(LONGC) | システム依存 |
├ Windows(32bit) | 2,000,000,000 |
└ Linux(32bit) |
LINESIZE | システム依存 |
├ Windows(32bit) | 3,2767 |
└ Linux(32bit) |
出力行のサイズ(原文: output line size) LINESIZE との意味の違いがわかりませんでした。 OS レベルでの制限値が優先されるということを強調している? | システム依存 |
COMPUTE コマンド・ラベルの文字数 | 500 文字 |
合計行幅 (原文: total row width) これも良くわかりません。サマリ行 (COMPUTE) のことを指しているようにもとれる。 しかし、こちらはシステム依存でない。 | 3,2767 文字 |
PAGESIZE | 50,000 行 |
ARRAYSIZE | 5,000 行 |
ページ数 | 99,999 |
PL/SQL エラー・メッセージの最大サイズ (= SQLERRM にも該当するのか?) | 2,048 バイト |
ネストされたスクリプトの最大数 | 20 |
xx 文字と書いてある項目は高い確率で xx バイトの可能性があります。(原文でも xx char と記されている)
実際に試してマニュアルと異なる箇所には取り消し線で (文字) と書いてあります。