Skip to Content

目的

このページの目的は、SQL Anywhereデータベースを再構築する時に照合とコードページの変更方法を説明することです。

 

はじめに

この文書で使用されている例では、元のデータベースは、OEM照合(コードページ850)を使用し、再構築したデータベースは、ANSI照合を使用しています。

いくつかの例では、ANSIクライアント(例えば変換のない Windows ODBCクライアント)のOEMコードページを使用してデータベースからデータを取得するときにドイツ語のウムラウトのようなアクセント付き文字は、正しく表示されません。

 

コードページ 850に基づくOEM照合で構築されたデータベースがあるとします。(C:\oem.db)

 

説明

1.文字セット変換をオフにしてデータベースを起動します。

 

  dbeng17 -ct- c:\oem.db

 

  注意:SQL Anywhere(Adaptive Server Anywhere)バージョン8以降では、文字セット変換はデフォルトでオンになっており、-ct-オプションを省略することができます。

 

2.内部アンロードと外部アンロードを使用してデータベースをアンロードします。ここで生成された reload.sqlファイルは、LOAD TABLE文の代わりにINPUT INTO文を持つことを意味します。

   LOAD TABLE は、サーバをデータ変換しません。必要があれば、INPUT INTO を使います。

 

  dbunload -c “UID=dba;PWD=passwd;ENG=OEM” -ix -r c:\unload\reload.sql c:\unload\data

 

3.ANSI照合を使用して新しいデータベースを作成します。

   例えば、ドイツ語のウムラウトが使用され、それらをソートさせたい場合は、コードページ1252(Windowsのデフォルト)に基づいて 照合1252DEU が推奨されます。

 

  dbinit -z 1252LATIN1 c:\newdatabase.db -dba dba,passwd

 

4.古いデータベース・サーバを停止し、新しいデータベースの文字セット変換をオンで起動します。

 

  dbeng17 -ct+ -n new-server c:\newdatabase.db

 

  注意:SQL Anywhere(Adaptive Server Anywhere)バージョン8以降では、文字セット変換はデフォルトでオンになっており、-ct+オプションを省略することができます。

 

5.新しいデータベースにデータをロードします。適切な文字セット変換を強制的に古いデータベースで使用されたコードページに指定する必要があります。

   この例では、元のデータベースで使用されているコードページは、コードページ850です。また、jConnectではなく、ODBCドライバを使用して接続する必要があります。

 

  dbisql -ODBC -c “UID=dba;PWD=sql” -codepage 850 c:\unload\reload.sql

 

  注意:SQL Anywhere(Adaptive Server Anywhere)バージョン9以降では、ODBCはデフォルトであり、-ODBCオプションを省略することができます。

 

6.データが新しいデータベースにロードされたら、データベースを停止し、データベース・サーバをシャットダウンします。

 

このページは、以下の英語ページの抄訳です。

https://wiki.scn.sap.com/wiki/display/SQLANY/Changing+the+Collation+and+Codepage+When+Rebuilding+an+SQL+Anywhere+Database

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply