web-dev-qa-db-ja.com

SQL * Plus内からエンコーディングを設定する

@@演算子を使用する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コマンドを使用してクライアントのエンコーディングを変更できるかどうかは疑問です。 (または、少なくとも値を読み取り、一致しない場合は実行を中止します。)

4

NLS_LANGはセッション内から変更できませんが、他の設定は変更できます。

データベース接続が確立されたら文字セットを変更することはできません(つまり、NLS_LANGの2番目の部分)。ただし、次の方法で言語を変更できます。

alter session set NLS_LANGUAGE=SPANISH

...そして次の地域:

alter session set NLS_TERRITORY=SPAIN
6
Philᵀᴹ