2011-01-05 10 views
2

OracleにはSQL Serverとしてのスクリプトセットがあります。 これらのスクリプトはANSIです。ansiスクリプトをUnicodeに自動的に変換します。

これでUnicodeデータベースもサポートしたいと考えています。しかし、それにはスクリプトをいくらか変更する必要があります。たとえば、異なるデータ型を使用し、文字列の前に 'N'を置くなどです。

誰かがユニコードとの間でスクリプトを変換するツールがあるかどうかを知りませんか?私はまだいくつかの検索エンジンを使用して何かを見つけることができませんでした。

+1

「ANSI」と「Unicode」のどちらも実際の文字エンコードではありません。私はあなたがシングルバイト文字セット(ISO-8859-1やWindows-1252など)からマルチバイト文字セット(UTF-8やUTF-16など)に切り替えることについて話していると仮定します。私はこれについて言及しています。なぜなら、そこには多くの開発者がいて、自分のアプリケーションで使用されている文字セットが分からず、それが基本的な概念だと気づいていないからです。 –

+0

ご返信ありがとうございます。私はシングルバイト文字セットからマルチバイト文字セットに切り替えることについて話します。 – Rhapsody

答えて

2

には2つのアプローチがあります。データベースサーバーを完全に制御できるのであれば、デフォルトの文字セット、つまりNLS_CHARACTERSETパラメータの値を変更し、データベースの残りの部分は変更しないでください。通常のCHAR/VARCHAR2列を使用すると、フルテキスト索引付けなどの幅広い機能セットが提供されます。

サーバーを完全に制御できない場合や、古いマルチバイト対応ではないアプリケーションとの互換性を維持する必要がある場合は、NLS_NCHAR_CHARACTERSETパラメータの値を確認し、すべてのDBをNCHAR/NVARCHAR2データ型。ここで

は違いを強調して、別の質問です:

SELECT * FROM NLS_DATABASE_PARAMETERS; 
SELECT * FROM NLS_INSTANCE_PARAMETERS; 
SELECT * FROM NLS_SESSION_PARAMETERS; 

注:私は、移行を支援することはできません

Difference between VARCHAR2(10 CHAR) and NVARCHAR2(10)

最終ではなく、少なくとも、ここであなたは、いくつかの有用なクエリですツールまたはSQL Serverの部品、申し訳ありません。

+0

もう一度ありがとう。私は私の質問を言い換える必要があると思う。あなたの答えははっきりしていますが、私の質問はそうではありません:-)私はデータベースとユニコードには比較的新しいです。 – Rhapsody

+0

@Rhapsody私はあなたの質問のほんの一部に答えたことを認めます。私が言ったことは、Oracleのバージョンが変更を必要としない可能性があるということです。 –

関連する問題