- PR -

oracle 10g XE にてキャラクタセットを変更する方法

1
投稿者投稿内容
iwamu
会議室デビュー日: 2005/10/27
投稿数: 16
投稿日時: 2006-08-31 15:46
環境:Windows 2000 Pro SP4 + Oracle Database 10g Express Edition

 他のDBのダンプファイルをimp.exeでインポートしようとしたのですが,Oracleエラー12899が発生して,特定のデータ行がインポートできませんでした。

 調査したところ,キャラクタセットの違いが原因のようです。

エクスポート側(oracle8i)のキャラクタセット:JA16SJIS
インポート側(oracle10g)のキャラクタセット:AL32UTF8

 そこで,インポート側(oracle10gXE)のキャラクタセットをJA16SJISに変更したいのですが,どのようにしたらよいでしょうか。

 よろしくお願いいたします。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-08-31 15:56
UNICODE からの変更ですから、データベース再作成になるでしょうね。
(そうするとあの HTMLDB もどきのアプリケーションとかって再作成
できるんだろうか...?)

予め定義を変更した空の表を XE 側に作っておいて、ignore=y 指定して
imp した方が早いかもしれませんね。

_________________
もしもし@RMAN 友の会
iwamu
会議室デビュー日: 2005/10/27
投稿数: 16
投稿日時: 2006-08-31 16:18
引用:

予め定義を変更した空の表を XE 側に作っておいて、ignore=y 指定して
imp した方が早いかもしれませんね。



やはり,それしかないでしょうかね。
テーブル数が多いので,なるべく定義の変更を避けたかったものですから・・・
iwamu
会議室デビュー日: 2005/10/27
投稿数: 16
投稿日時: 2006-08-31 16:40
テーブルの再定義だけならいいのですが,以下のようなエラーも発生しました。

ORA-00972: 識別子が長すぎます。

識別子まで変えてしまうと,ソースまで変更しなければなりません。

やはりデータベースの再作成しかないでしょうか。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-08-31 17:06
ORA-972 ってもしかしてオブジェクト名はマルチバイト文字を
使っているということでしょうか。

だとしたら、データベース再作成しかないかなぁ...。
(シングルバイト文字しか使ってなかったら発生しなかったはず)
_________________
もしもし@RMAN 友の会
iwamu
会議室デビュー日: 2005/10/27
投稿数: 16
投稿日時: 2006-08-31 17:26
引用:

ORA-972 ってもしかしてオブジェクト名はマルチバイト文字を
使っているということでしょうか。



そのとおりです。
そうですか,やはりデータベース再作成しかありませんか・・・

XEなのでめんどくさそうですけど,がんばってみます。
1

スキルアップ/キャリアアップ(JOB@IT)