@@
演算子を使用するSQL * Plusスクリプトで実行するSQLコマンドを含む大きなファイルセットがあります。スクリプトをサードパーティのコンピューターで実行する(または電子メールで送信する)ため、できるだけ自己完結型にしたいと思います。
ファイルはWin-1252としてエンコードされます。現在、スクリプトを実行する前にNLS_LANG
環境変数を設定する必要があります。
C:\> SET NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252
C:\> echo exit | sqlplus foo/bar@//example.com/xe @install.sql
これは機能しますが、SQLまたはSQL * Plusコマンドを使用してクライアントのエンコーディングを変更できるかどうかは疑問です。 (または、少なくとも値を読み取り、一致しない場合は実行を中止します。)
NLS_LANG
はセッション内から変更できませんが、他の設定は変更できます。
データベース接続が確立されたら文字セットを変更することはできません(つまり、NLS_LANG
の2番目の部分)。ただし、次の方法で言語を変更できます。
alter session set NLS_LANGUAGE=SPANISH
...そして次の地域:
alter session set NLS_TERRITORY=SPAIN