Adaptive Server Anywhere の名前の変更 バージョン 10.0.0 では、Adaptive Server Anywhere の名前が SQL Anywhere に変更されました。
アップグレードの変更 バージョン 9.0.2 以前のデータベースをバージョン 10 にアップグレードするために、データベースアップグレードウィザード、アップグレードユーティリティ (dbupgrad)、ALTER DATABASE UPGRADE 文を使用することはできません。以前のバージョンのデータベースをバージョン 10 にアップグレードするには、アンロードと再ロードを実行し、データベースを再構築する必要があります。SQL Anywhere サーバーのアップグレードを参照してください。
パスワードの変更 新しく作成されたデータベースでは、データベースでの設定にかかわらず、すべてのパスワードは大文字と小文字が区別されます。新しいデータベースのデフォルトの DBA パスワードは、sql です。
既存のデータベースを再構築する場合、パスワードの大文字と小文字の区別は、次のように決まります。
パスワードを最初に入力したのが大文字と小文字を区別しないデータベースだった場合、そのパスワードの大文字と小文字は区別されません。
パスワードを最初に入力したのが大文字と小文字を区別するデータベースだった場合、大文字のパスワードと、大文字と小文字が混在したパスワードでは、大文字と小文字が区別されます。ただし、パスワードをすべて小文字で入力した場合、パスワードの大文字と小文字は区別されません。
既存のパスワードと新しいパスワードの両方に加えられた変更は、大文字と小文字が区別されます。
データベースサーバーで、パスワードのハッシュ処理に SHA256 が使用されるようになりました。古いデータベースから再ロードされるパスワードには古い (独自の) ハッシュ処理アルゴリズムが引き続きサポートされていますが、新しいパスワードにはすべて SHA256 が使用されます。
パスワードは UTF-8 で格納されるようになりました。そのため、異なる文字セットを使用するデータベースに再ロードされても、データベースは動作し続けます。
以前のリリースでは、Embedded SQL から接続すると、DBA パーミッションでデータベースに接続した後で、どのユーザーでもパスワードを指定することなく同じデータベースに対して 2 つ目の接続を確立できていました。今回のリリースでは、接続ごとにパスワードの指定が必要になりました。
ブランク埋め込みの変更 SQL Anywhere の以前のリリースでは、ブランクを埋め込まれたデータベースで文字列を比較した場合のセマンティックは、比較される 2 つの文字列に無限のブランクが埋め込まれているかのようになっていました。バージョン 10 では、これらのセマンティックが変更され、各文字列の後続ブランクを無視して比較を行うようになりました。
等号 (=) 比較と不等号 (<>) 比較の場合は、セマンティックに変更はありません。どちらの方法 (ブランクの埋め込みと後続ブランクの無視) でも同じ結果になります。ただし、不等比較の場合は異なります。たとえば、2 バイトの文字列
'a*' があるとします ('*' は、ブランクの値より小さい、データベースの照合順の文字を表します)。以前のバージョンの SQL Anywhere では、比較述部 'a*' < 'a'
は TRUE を返していました。バージョン 10 では、短い文字列には比較前にブランクが埋め込まれないので、この述部は FALSE となります。
ブランクの埋め込みの詳細については、初期化ユーティリティ (dbinit)とCREATE DATABASE 文を参照してください。
プロパティの戻り値の大文字と小文字 サーバープロパティ (PROPERTY 関数で返される) は以前のバージョンでは YES または NO を返していましたが、Yes または No を返すようになりました。データベースプロパティ (DB_PROPERTY 関数で返される) と接続プロパティ (CONNECTION_PROPERTY 関数で返される) は、以前のバージョンでは ON または OFF を返していましたが、On または Off を返すようになりました。この変更は、大文字と小文字を区別するデータベースや、大文字と小文字を区別する文字列比較を使用するアプリケーションに影響する可能性があります。
サーバープロパティの戻り値の変更 以前のリリースでは、サーバープロパティ ConnsDisabled と RememberLastStatement は値 ON と OFF を返していました。これらは値 Yes と No を返すようになりました。データベースサーバープロパティ値のアクセスを参照してください。
sasrv.ini ファイルのデフォルトロケーションの変更 sasrv.ini のデフォルトのロケーションは、Windows では %ALLUSERSPROFILE%\Application Data\SQL Anywhere 10、UNIX では $HOME/.sqlanywhere10 です。以前のリリースでは、UNIX でのファイル名は .sasrv.ini でした。このファイルの名前は、すべてのプラットフォームで、sasrv.ini になりました。
長い名前のデータベースサーバーへの接続 Windows と UNIX では、バージョン 9.0.2 以前のクライアントは、40 バイトより長い名前が設定されたバージョン 10.0.0 以降のデータベースサーバーに接続できません。
データベースサーバーで文字セットの変換は常に有効 文字セットの変換を有効/無効にする -ct データベースサーバーオプションはサポートされなくなりました。データベースサーバーで文字セット変換は常に有効になりました。ただしデータベースサーバーで変換が不要であると判断された場合は、使用されません。文字セット変換を無効にするには、クライアントから CharSet=none と指定します。CharSet (CS) 接続パラメーターを参照してください。
Windows CE でサポートされていない文字セット変換 文字セット変換は Windows CE ではサポートされていません。以前のリリースでは、文字セット変換は Windows CE 用のデータベースサーバー上では無効になっており、データベースにはどの文字セットも使用することができました。今回のリリースでは、オペレーティングシステムの文字セットまたは UTF-8 のいずれかを使用して、Windows CE 用にデータベースを作成する必要があります。インストール時の考慮事項:Windows Mobile での ICU の使用を参照してください。
システムプロシージャーとファンクションの変更 システムプロシージャーとファンクションの変更は次のとおりです。
複数のシステムプロシージャーの内部への組み込み 外部システムプロシージャーの xp_read_file、xp_write_file、xp_sprintf、xp_scanf、xp_cmdshell が、内部システムプロシージャーになりました。
sa_validate システムプロシージャー sa_validate システムプロシージャーで、VALIDATE 権限が必要になりました。sa_validate システムプロシージャーを参照してください。
sa_reset_identity システムプロシージャー table-name パラメーターが必須になりました。また、owner-name パラメーターを指定しない場合は、table-name パラメーターがデータベース内のテーブルをユニークに識別する必要があります。sa_reset_identity システムプロシージャーを参照してください。
sa_locks システムプロシージャー sa_lock システムプロシージャーの出力が変更され、追加情報 (接続 ID、ユーザー ID、テーブル名、ロッククラス、ロック期間) を返すようになりました。sa_locks システムプロシージャーを参照してください。
RAND 関数 以前のバージョンでは、各接続のシードが同じ値に設定されていたため、RAND 関数が各接続で同一のシーケンスを返すことがありました。今回のリリースでは、各接続がさまざまなランダムシーケンスを認識するため、各接続はユニークなシードが設定されるようになりました。RAND 関数 [数値]を参照してください。
コールバック関数 DB_CALLBACK_START と DB_CALLBACK_FINISH コールバック関数 DB_CALLBACK_START と DB_CALLBACK_FINISH がすべてのプラットフォームでサポートされるようになりました (以前は Windows プラットフォームのみでサポートされていました)。db_register_a_callback 関数を参照してください。
UNC 名を使用して指定されたファイルで分散読み込みが使用されなくなった リモートコンピューター上のファイルや UNC 名 (たとえば \\mycomputer\myshare\mydb.db) で指定されたファイルに対して、分散読み込みが使用されなくなりました。適切なページサイズの使用を参照してください。
プライマリキー制約と外部キー制約でのカラムの順序 プライマリキー制約を作成するときは、任意の順序でカラムを指定できます。テーブルにカラムが出現する順序は関係ありません。また、外部キーのカラムとプライマリキーのカラムのマッピングを指定すれば、参照先のプライマリキーとカラムの順序が異なる外部キーを作成できるようになりました。CREATE TABLE 文の PRIMARY KEY 句を参照してください。
インデックスで重複したカラム名を使用できなくなった 以前のバージョンでは、インデックスのカラムを重複参照できていましたが、プライマリキー、外部キー、一意性制約指定は除外されていました。今回のバージョンでは、すべてのタイプのインデックスで動作が一貫されるようになりました。カラム名を重複して指定すると、エラーが返されます。また、旧バージョンのデータベースに重複したカラム参照のあるインデックスが含まれていると、dbunload ユーティリティによって reload.sql の生成時に重複したカラムがインデックスから削除されます。CREATE TABLE 文を参照してください。
暗号化データベースプロパティ
SELECT DB_PROPERTY( 'Encryption' )
を実行すると、データベースが暗号化されていない場合でも、None 以外の値を返すようになりました。これは、データベースでテーブル暗号化が有効な場合に発生します。アプリケーションでデータベースが暗号化されているかを確認する方法としてこの文を実行する場合は、代わりに
SELECT DB_PROPERTY( 'EncryptionScope' )
を使用してください。データベースプロパティ値のアクセスを参照してください。
FIPS を使用して HTTPS を開始する場合の構文の変更
この場合、以前のバージョンでは -xs HTTPS_FIPS(...)
を指定していました。今回のバージョンでは、-xs HTTPS(FIPS=yes;...)
を指定する必要があります。以前の構文はサポートはされますが、廃止される予定です。-xs dbeng12/dbsrv12 サーバーオプションを参照してください。
ユーザー ID の最大長は 128 バイト 以前のリリースでは、文でユーザー ID が必要な場合、データベースサーバーでは 128 バイトを超えるユーザー ID を使用する前にトランケートしていました。string_rtruncation オプションを設定した場合は、トランケーションエラーが返されていました。これが 128 バイトを超えるユーザー ID を指定した場合は、string_rtruncation オプションの設定に関係なく、データベースサーバーがエラーを返すようになりました。識別子を参照してください。
サーバー名の最大長 TCP/IP 接続と共有メモリ接続で、データベースサーバー名の最大長が 40 バイトから 250 バイトに増加しました。-n dbeng12/dbsrv12 サーバーオプションを参照してください。
識別子で使用可能な文字の変更 識別子で二重引用符と円記号を使用できなくなりました。識別子を参照してください。
LicensesInUse サーバープロパティ名の変更 サーバープロパティ LicensesInUse の名前は、UniqueClientAddresses に変更されました。データベースサーバープロパティ値のアクセスを参照してください。
SQL Anywhere OLE DB プロバイダー名の変更 SQL Anywhere OLE DB プロバイダーの名前は、以前は ASAProv、ASAProv.90、ASAProv.80 でしたが、SAOLEDB になりました。バージョン 10 のプロバイダーは、SAOLEDB.10 という名前で具体的に参照できます。
SQL Anywhere サンプルデータベース ODBC DSN の変更 ODBC データソースの名前は、以前は ASA 9.0 Sample でしたが、SQL Anywhere 10 Demo になりました。
接続文字列の変更 ODBC 接続と OLE DB 接続で、接続パラメーターを検出する場所の優先度が接続文字列、SQLCONNECT 環境変数、データソースの順になりました。以前のバージョンでは、ODBC 接続と OLE DB 接続でデータソースの優先度は SQLCONNECT よりも高くなっていました。接続パラメーターの構文ルールを参照してください。
空の値を使用した接続パラメーターが未指定として扱われるようになった すべての API で、空の値で指定された接続パラメーターは、パラメーターが指定されなかったものとして扱われます。以前のリリースでは空の値は、指定された場所と使用されている API に応じて未指定または空の文字列として扱われていました。接続パラメーターの構文ルールを参照してください。
監査がオンの場合はトランザクションログをオフにできない 以前のバージョンのソフトウェアでは、監査がオンになっているデータベースでトランザクションログの使用を停止できました。今後は、データベースで監査がオンになると、トランザクションログを使用する必要があります。トランザクションログの使用を中止する場合は、監査をオフにする必要があります。
監査がオンになっているデータベースは読み込み専用モードで起動できない 以前のバージョンのソフトウェアでは、監査がオンになっているデータベースを読み込み専用モードで開始できました。今回のバージョンでは、監査がオンになっているデータベースは、読み込み専用モードで起動できません。
符号付き BIGINT カラムの精度が 20 から 19 になった 以前は、ODBC アプリケーションで SQL_BIGINT を使用して符号付き BIGINT カラムを記述すると、不適切な精度 20 の値が返されていました。今回のバージョンでは、精度 19 の値が返されるようになりました。以前の (不適切な) 値に依存するアプリケーションは変更する必要があります。
Java VM の強化 SQL Anywhere では、Java オプションは別途ライセンスが必要なコンポーネントとして提供されなくなりました。データベース内の Java は、Java コードを実行するために内部 VM を使用するのではなく、外部 VM を使用するようになりました。これによって、任意の Java VM を使用できるようになり、特定の JDK バージョンや Java ターゲットに限定されなくなりました。新しく初期化されるデータベースは、常に Java 対応になります。
その結果、次の変更が行われました。
サポート対象外のデータベースオプション SQL Anywhere による以下のオプションのサポートは終了しました。
サポート対象外のプロパティ 以下のプロパティは、サポートされなくなりました。
データベースプロパティ
データベースサーバープロパティ
接続プロパティ
新しい JavaVM プロパティ JavaVM データベースプロパティは、データベース内の Java を実行するためにデータベースサーバーが使用する Java VM のパスを返します。
サポート対象外の互換ビューカラム システム互換ビューで、次のカラムを使用できなくなりました。
データベースユーティリティで廃止された Java オプション 次のデータベースユーティリティプロパティは廃止される予定です。
CREATE DATABASE 文と ALTER DATABASE 文の一部の Java 関連句で Java サポートが廃止された CREATE DATABASE 文では、JAVA ON | OFF 句と、JDK バージョン句がサポートされなくなりました。ALTER DATABASE 文では、REMOVE JAVA 句がサポートされなくなりました。
新しい Java ファイル 前述の変更のほかに、java\sajvm.jar ファイルが追加されました。
Ping ユーティリティ (dbping) 以前は、データベースサーバーがプロパティ値に対して NULL を返すと、Ping ユーティリティ (dbping) はエラーを返していました。今回のバージョンでは、プロパティ値が不明の場合に、dbping は NULL を出力し、成功のリターンコードで終了するようになりました。プロパティ値が不明の場合に dbping が失敗のエラーコードで終了するようにする場合は、-en オプションを指定できます。Ping ユーティリティ (dbping)を参照してください。
環境変数の名前の変更 このリリースでは、次の環境変数の名前が変更されています。
以前の名前 | 新しい名前 |
---|---|
ASTMP | SATMP |
ASDIR | SADIR |
ASLOGDIR | SALOGDIR |
ASLANG | SALANG |
ASCHARSET | SACHARSET |
PHP モジュールのファイル名の変更 PHP ファイルの命名規則が変更されました。以前のバージョンでは、ファイル名は phpX_sqlanywhereY.dll という形式でした (X は PHP のメジャーバージョン番号、Y は SQL Anywhere のメジャーバージョン番号)。今回のバージョンでは、PHP モジュールファイルの名前は php-a.b.c_sqlanywhereY.dll という形式になります (a.b.c はファイルのビルド元 PHP ソースの完全なバージョン番号、Y は SQL Anywhere のメジャーバージョン番号)。たとえば php-5.0.2_sqlanywhere10.dll のようになります。
PrefetchBuffer 接続パラメーターの値の指定 下位互換のため、PrefetchBuffer 接続パラメーターで 16384 未満の値がキロバイトとして解釈されるようになりました。k サフィックスなしでキロバイトを使用する方法は廃止されます。PrefetchBuffer の値が有効な範囲外にあったり k サフィックスなしでキロバイト単位を指定したりしたためにこの値が調整される場合は、実際に使用された PrefetchBuffer 値がクライアントログファイルに示されます。PrefetchBuffer (PBUF) 接続パラメーターを参照してください。
システム定義のドメインを削除できない システム定義のドメイン (MONEY、UNIQUEIDENTIFIERSTR など) はデータベースから削除できなくなりました。DROP DOMAIN 文を参照してください。
データベースユーティリティの変更 前述したとおり、データベースユーティリティは次のように変更されています。
サービスユーティリティ (dbsvc) でサービスとしてログインする権限を付与できる サービスユーティリティ (dbsvc) で -a オプションを使用し、サービスとしてログインする権限が有効でないアカウントで実行しようとすると、サービスとしてログインする権限を付与するかどうかを指定するプロンプトが表示されます。-y オプションを使用すると、dbsvc はプロンプトせずに、サービスとしてログインする権限を付与しようとします。Windows 用サービスユーティリティ (dbsvc)を参照してください。
アンロードユーティリティ (dbunload) の -an オプションをリモートサーバーに使用できる この変更以前には、dbunload -an は同じコンピューター上のサーバーのみに対して実行できていました。今回のリリースでは、dbunload -an を別のコンピューターで実行しているサーバーに対して実行できるようになりました。アンロードユーティリティ (dbunload)を参照してください。
サーバー列挙ユーティリティ (dblocate) ホスト名または IP アドレスのフォーマット
ホスト名や IP アドレスは、-n を指定したかどうかに関係なく、任意のフォーマットで使用できます。たとえばサーバーが myhost.mycompany.com で実行中で、この IP アドレスが 1.2.3.4 の場合、このコンピューターで実行しているサーバーだけを
mycompany.com ドメインの任意のコンピューターからリストするには、dblocate myhost
、dblocate myhost.mycompany.com
、dblocate 1.2.3.4
のいずれでも使用できます。以前のバージョンでは、指定されたホスト名や IP アドレスは dblocate によって表示されるアドレス文字列 (ポート番号を除く) に一致する必要があったため、dblocate myhost.mycompany.com
または dblocate -n 1.2.3.4
だけが機能していました。サーバー列挙ユーティリティ (dblocate)を参照してください。
デフォルト関連の変更 デフォルトは、次のように変更されています。
パーソナルデータベースサーバーのデフォルト TCP/IP 受信アドレスの変更 Windows では、パーソナルデータベースサーバーは 0.0.0.0 ではなく、127.0.0.1 で接続を受信するようになりました。この変更により、Windows ファイアウォールを有効にして SQL Anywhere を実行している場合は、dbeng10 の使用前に例外リストに追加する必要がなくなりました。
これにより、hostname がコンピューターの実際のホスト名や IP アドレスの場合、LINKS=tcpip(HOST=hostname;DOBROADCAST=none)
で接続しようとしても機能しません。ただし、ホスト名 localhost または 127.0.0.1 を使用すると機能します。
デフォルトデータベースページサイズが 4096 に変更 SQL Anywhere データベースのデフォルトデータベースページサイズが、4096 バイトから 2048 バイトに変更されました。このページサイズにすると、多くの環境でパフォーマンスが向上することがわかっています。CREATE DATABASE 文を参照してください。
-gp オプションを指定しないで、データベースがロードされていない状態でデータベースサーバーを起動した場合、そのデータベースサーバーのデフォルトページサイズは 4096 になります。
デフォルト最大キャッシュサイズの変更 Windows (非 AWE) のデフォルトの最大キャッシュサイズが増加しました。デフォルトの最大キャッシュサイズは次のどちらか小さい方になりました。
90% of (total_physical_memory - 4 MB)
、2 MB 以上
(available address space - 512 MB)
UNIX キャッシュサイズ UNIX での最大キャッシュサイズの計算方法が変更されました。デフォルトの最大キャッシュサイズは次のように計算されます。
32 ビットの UNIX プラットフォームでは、物理メモリ量の合計の 90% または 1,834,880 KB のいずれか小さい方です。
64 ビットの UNIX プラットフォームでは、物理メモリ量の合計の 90% または 8,589,672,320 KB のいずれか小さい方です。
-ch dbeng12/dbsrv12 サーバーオプションを参照してください。
UNIX ストアドプロシージャー 既存の UNIX アプリケーションをアップグレードするときに、64 ビットデータベースサーバーを使用している場合は、既存の外部ストアドプロシージャーを 64 ビットに変更する必要があります。
NULL 定数を NUMERIC または文字列データ型に変換する場合のデフォルトサイズ NULL 定数を NUMERIC データ型または文字列データ型 (CHAR、VARCHAR など) に変換する場合、長さが 32767 ではなく 0 に設定されるようになりました。
openxml システムプロシージャーのデフォルト URI の変更 openxml システムプロシージャーを使用する場合、名前空間宣言が指定されなかったときは、デフォルトでプレフィクス mp が Uniform Resource Identifier (URI) にバインドされます。以前のリリースでは、この URI は urn:ianywhere-com:asa-xpath-metaprop でした。この値が urn:ianywhere-com:sa-xpath-metaprop に変更されました。openxml システムプロシージャーを参照してください。
-c、-ch-、-cl サーバーオプションのキャッシュサイズの割合を計算する方法の変更 -c、-ch、または -cl を指定して P (パーセント) を使用すると、物理システムメモリ量または使用可能なアドレス空間量のどちらか小さい方に対して割合が計算されるようになりました。アドレス割り当てに使用できるよりも多くのメモリをキャッシュに割り当てようとするリスクがなくなります。-c dbeng12/dbsrv12 サーバーオプション、-ch dbeng12/dbsrv12 サーバーオプション、-cl dbeng12/dbsrv12 サーバーオプションを参照してください。
Procedure_profiling サーバーオプション名の変更 プロシージャープロファイリングを制御するサーバーオプションの正しい名前が ProcedureProfiling になりました。以前の Procedure_profiling も使用できますが、将来のリリースでサポートされなくなる予定です。sa_server_option システムプロシージャーを参照してください。
デフォルトポートを使用していない HP-UX 上のデータベースサーバーに接続しているクライアントで、TCP/IP ポート番号の指定不要 以前のリリースで、HP-UX でデータベースサーバーを起動する場合、デフォルトポート (2638) が使用中またはデフォルトポートを使用しないのであれば、ServerPort [PORT] プロトコルオプションを使用してポート番号を指定する必要がありました。
HP-UX では、1 つのコンピューターで複数のデータベースサーバーが起動している場合に、TCP/IP の ServerPort プロトコルオプションは不要になりました。Mac OS X では、サーバーが同じコンピューターですでに実行している場合にネットワークサーバーを起動するには、依然として TCP/IP の ServerPort オプションを指定する必要があります。ServerPort (PORT) プロトコルオプションを参照してください。
SOAP CONCRETE 応答の名前が ASADataSet から SimpleDataset に変更 CONCRETE 応答の名前が ASADataSet から SimpleDataset に変更されました。CREATE SERVICE 文 [SOAP Web サービス]を参照してください。
データベースアンロードウィザードの動作の変更 データベースをバージョン 10 以前のデータベースバージョンにアンロードできなくなりました。バージョン 9.0.2 以前のデータベースをバージョン 10 のデータベースにアンロードすると、再構築が完了してもデータベースに自動的に接続できません。
データベース抽出ウィザードの動作の変更 バージョン 9.0.2 以前のデータベースを抽出できません。バージョン 10 のデータベースから抽出する必要があります。
Solaris でサポート対象外の -ui と -ux サーバーオプション Solaris で -ui と -ux サーバーオプションはサポートされなくなりました。Linux では引き続き使用できます。
数値データ型の変換 DOUBLE 型から NUMERIC に変換する場合に、元の DOUBLE 値の近似精度が最も高いアルゴリズムが使用されるようになりました。これらの変更により、有効桁数が 15 桁以下の DOUBLE 値は、正確に NUMERIC に変換されます。場合によっては、SQL Anywhere の以前のバージョンとは異なる結果になることがあります。数値セットの変換を参照してください。
sa_validate システムプロシージャーの変更 sa_validate システムプロシージャーのデータ、インデックス、フルの各オプションは必要なくなり、使用できなくなる予定です。式やチェックサムの検証を要求しないかぎり、以前のデータ、インデックス、フルのオプションを使用して実行されていた検査は、デフォルトで実行されます。
a_validate_type 列挙体の変更 a_validate_type 列挙体の VALIDATE_DATA、VALIDATE_INDEX、VALIDATE_FULL の各パラメーターは必要なくなり、使用できなくなる予定です。VALIDATE_NORMAL が指定されると、これらのオプションで実行された検証は、デフォルトで実行されます。検証列挙 [データベースツール]を参照してください。
SQLPATH 環境変数の構文の変更 UNIX での SQLPATH 環境変数の構文が変更されました。以前のバージョンでは、すべてのオペレーティングシステムで、各パス要素をセミコロン (;) で区切っていました。SQL Anywhere 10 では、UNIX プラットフォームではパス要素をコロン (:) で区切り、その他のプラットフォームではセミコロンで区切ります。
CharSet 接続パラメーターの変更 以前は、CharSet=NONE と指定すると、接続の文字セット変換が無効になりました。現在では、CharSet=NONE を指定すると、接続でデータベース CHAR 文字セットの使用が要求されます。CharSet (CS) 接続パラメーターを参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |