ORACLE TECHNOLOGY NETWORK
 
 
   

Oracle Technology Network (OTN) Japan - 掲示板 » コミュニティ » 初心者の部屋

スレッド: 文字化けオブジェクトの削除方法

このスレッドに返信する このスレッドに返信する スレッド一覧へ スレッド一覧へ

Permlink 返信数: 17 - ページ数: 2 [ 前へ | 1 2 ] - 最新投稿 : 2005/07/17 3:52 最新投稿者: ushitaki - スレッド表示形式:
ushitaki

投稿数: 7,079
登録日時: 98/10/30


RE[2]:文字化けオブジェクトの削除方法
投稿時刻: 2005/07/17 1:19   t_saegusa さんへの返信です。 t_saegusa さんへの返信です。
  このスレッドに返信します… 返信

>半角カタカナは文字化けし易いです。
>現実を直視して規約を変更しなさい。

違いますね。

文字化けした結果が半角カタカナなのであって
半角カタカナが化けたんじゃありませんね。

半角カタカナが文字化けしやすいと言う事はありません。
半角カタカナが文字化けする環境では
大概は漢字も文字化けします。

半角カタカナが悪さするのは SJIS では1バイトなのに
EUC では2バイトと言う理由に尽きまして...
時として端末をハングさせてさえしまいます。
(SunOS で nemacs とか使っていると良く発生したらしい)

それゆえにUNIX(EUC)な文化の人たちから
忌み嫌われているのです。

単なる文字化け問題よりも、性質が悪いと言えば悪いのです。
機種依存文字も同様に端末をハングさせることがあります。

しかしながら、SJIS コードに閉じた世界において
7bit ではなくて 8bitできちんと処理しているのであれば
半角カタカナ(1バイト)は機種依存文字(2バイト以上)とかよりは
罪と言うか問題は少ないです。


質問者の場合、Solaris とか言っていますので
どこかが EUC になっているのでしょう。

質問者はスクリプトが文字化けとか言っていますが...
確認した環境がそもそも文字コードなど各種設定が
間違えているとかも考えられますしね。


-- ushitaki --
「ご教授」じゃなく「ご教示」だよ。「教えて下さい」で充分じゃないの?
緊張せずに慌てずに!無理せず普段の言葉で誰にでも解る様に説明してね。
ここは対等での情報交流の場所。掲示板検索や Tips も活用するのが早道!

ushitaki

投稿数: 7,079
登録日時: 98/10/30


RE[3]:文字化けオブジェクトの削除方法
投稿時刻: 2005/07/17 2:34   ushitaki さんへの返信です。 ushitaki さんへの返信です。
  このスレッドに返信します… 返信

>半角カタカナが悪さするのは SJIS では1バイトなのに
>EUC では2バイトと言う理由に尽きまして...
>時として端末をハングさせてさえしまいます。
>(SunOS で nemacs とか使っていると良く発生したらしい)

違うな... SJIS は関係なくて

EUCでは表示上1バイトの文字を2バイトで扱っているからですね。

たぶん昔の nemacs 環境じゃ表示上2バイト文字が
3バイトとか4バイトと言うのは考慮されていなかったはずなので
EUCにおけるユーザー定義文字とかであろうとも
昨今の unicode であろうとも問題発生の可能性は高いですね。


-- ushitaki --
「ご教授」じゃなく「ご教示」だよ。「教えて下さい」で充分じゃないの?
緊張せずに慌てずに!無理せず普段の言葉で誰にでも解る様に説明してね。
ここは対等での情報交流の場所。掲示板検索や Tips も活用するのが早道!

ushitaki

投稿数: 7,079
登録日時: 98/10/30


RE[2]:文字化けオブジェクトの削除方法
投稿時刻: 2005/07/17 3:52   macbeth さんへの返信です。 macbeth さんへの返信です。
  このスレッドに返信します… 返信

>>必要なオブジェクトをexpして、そのユーザをdrop ... cascadeで削除して
>>create userしてimpは
>
>半角カタカナに操を守る主義はないんで試したことないですけど、文字化け
>したobjectが文字化けしたままexpされませんか?
>で、impすると文字化けしたままだったりとか。

全文引用で失礼いたします。
文字化けした object は export 対象外ですから関係ありませんね。
(Pakcage なので user 指定以上じゃないと export されませんが)

半角カタカナという言葉だけに惑わされて(しかも化けた後の話)
問題中心や解決提言の肝(きも)とか要(かなめ)を誤まるのはマイナスです。

例えば「ORA-00911: 文字が無効です。」と言うエラーが出ているので
問題として "" で括る必要があるかも知れないというのは正しい推測です。
また、加えて入力文字コード自体(OS,端末エミュレータ設定)が
間違えていると考える事も可能です。
半角カタカナでも正しい文字コードで使い "" で括れば生じません。
生じるのならば Oracle のバグです。

#「半角カタカナ反対」とかしか叫べない方々は...
#結局は分析力も応用力も解決力も無いと思いますねぇ〜
#免罪符と言うか便利な壁を作ってその先を探索しようともしないので。
#間違った敬語とかで質問するのと大差は無い。

#もっとも、like '%moumou%' じゃインデックスは使われないはずと
#思っていたわたくしも技術上の考察とかで便利なフィルタを
#作っていたのは確かなので、大差は無いが。


で、解決提言の肝の話に戻して
そもそも化けたオブジェクトは export しないと言う話もありますが
初期登録とかの作業中なんでしょうから
単純に drop user cascade して、文字化けしていないスクリプトで
再作成すれば良いのでは無いですかねぇ〜。
スクリプトを流せば impする必要すらないので expも不要なのでは?

その際には create時の DATABASE の文字コード, OS, NLS_LANG,
端末エミュレータの in,out の文字コードとかを確認して
正しく設定して行わないと、無駄な努力を繰返す事になりますが...

-- ushitaki --
「ご教授」じゃなく「ご教示」だよ。「教えて下さい」で充分じゃないの?
緊張せずに慌てずに!無理せず普段の言葉で誰にでも解る様に説明してね。
ここは対等での情報交流の場所。掲示板検索や Tips も活用するのが早道!






ウェブサイトのご使用条件 | 個人情報保護基本方針/情報保護基本方針