dポイントプレゼントキャンペーン実施中!

既にデータベースをOracle 11gR2にて構築していて、初期化パラメータ「NLS_LENGTH_SEMANTICS」をデフォルトのByteベースからCharベースに変更しようとしています。この手順と影響範囲が知りたいです。

(1) 手順
私の理解では単純にSYSユーザにて以下を実行する。データベースの再起動は不要で有効になる。
SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS='CHAR';
正しいでしょうか?

(2) 影響範囲
SID上に構築しているすべてのスキーマ上のテーブルに適用される、で正しいでしょうか?
また、既存テーブルと新規テーブルという意味では、既存テーブルには影響を与えない、らしいのですが、そうなのでしょうか? 新しくテーブルを作成した場合にのみCharベースになるということでしょうか。その場合、既存テーブルもCharベースに変更するにはどのような手順を踏めばよいのでしょうか?(例)テーブルのエクスポート→テーブルのドロップ→テーブル再作成→データのインポート?など、思いつきですがよい方法があれば教えてください)

以上、宜しくお願いします。

A 回答 (1件)

こんにちわ。



> この手順と影響範囲が知りたいです。

http://docs.oracle.com/cd/E16338_01/server.112/b …
上記のマニュアルから判断すると、手順については認識の通りです。
影響範囲については、「Alter Session」 なのでAlter Session 文を実行したセッション
でのみ有効で既存テーブルには影響しません。

> 既存テーブルもCharベースに変更するにはどのような手順を踏めばよいのでしょうか?
Alter Session したセッションからテーブルを再作成しないといけないので、
単純に思いつく方法としては、こんな感じでしょうか?
1) exp 又は expdp でデータを外部に出力
2) Alter Session したセッションからテーブルをDrop&Create
3) imp 又は impdp でデータ投入
4) 索引再作成

参考URL:http://docs.oracle.com/cd/E16338_01/server.112/b …
    • good
    • 1
この回答へのお礼

ご回答有難うございました。参考になりました。

お礼日時:2014/06/04 15:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す