次に、バージョン 11.0.1 で導入された SQL Anywhere データベースとデータベースサーバに加えられた変更を、カテゴリごとに示します。
全文検索 全文検索をサポートするよう、次の動作変更が行われました。
演算子の優先度が適用される 以前までは、クエリ文字列に演算子の優先度は適用されていませんでした。このリリースでは、次の演算子の優先度が適用されるようになりました。
CONTAINS 探索条件における演算子の優先度を参照してください。
NEAR 句の引数は単語またはプレフィクス単語にする 近接検索を実行する場合、NEAR 句の引数は単語またはプレフィクス単語である必要があります。CONTAINS 探索条件と近接検索を参照してください。
ハイフンおよび AND NOT 句の使用 フレーズ内では、ハイフンは特殊文字ではなく単語区切りとして処理されます。フレーズの外にあるハイフンの処理は、ハイフンを囲む構文によって異なります。ハイフン (-) を使用できる構文と全文検索での AND NOT 演算子の使用を参照してください。
アスタリスクおよびプレフィクス検索の使用 プレフィクス検索を実行する場合、単語にアスタリスクを付加し、クエリ文字列の末尾とするか、またはそのすぐ後にスペースか許可された特殊文字を 1 つ挿入する必要があります。アスタリスク (*) を使用できる構文とプレフィクス検索を参照してください。
重複するテキストインデックスを作成するとエラーが返される 重複するテキストインデックスを作成できなくなりました。次の設定が既存のテキストインデックスと同じ場合、そのテキストインデックスは重複するものと見なされます。
参照されるベーステーブル
インデックス対象カラム (順序は問わない)
使用される設定オブジェクトの設定内容 (TERM BREAKER、MINIMUM TERM LENGTH、MAXIMUM TERM LENGTH、STOPLIST、照合情報)
SQL Anywhere 11.0.1 よりも以前のバージョンで作成された重複するテキストインデックスは、データベース内に残すことができ、11.0.1 のデータベースサーバで開始してもエラーは発生しません。ただし、重複するテキストインデックスを含むデータベースをバージョン 11.0.1 以降で再ロードすると、エラーが返されます。
既存のデータベース内にある重複するテキストインデックスを識別するには、次のクエリを実行します。
SELECT LIST( i.index_name ) FROM SYS.SYSIDX i JOIN SYS.SYSTEXTIDX t ON i.object_id = t.index_id AND t.sequence = 1 JOIN SYS.SYSTEXTCONFIG F ON F.object_id = t.text_config JOIN ( SELECT table_id, index_id, LIST( column_id, ', ' ORDER BY column_id ) col_id FROM SYS.SYSIDXCOL GROUP BY table_id, index_id) x ON x.table_id = i.table_id AND x.index_id = i.index_id WHERE i.index_category=4 GROUP BY i.table_id, f.term_breaker, f.min_term_length, f.max_term_length, f.collation, ISNULL( f.char_stoplist, '-' ), ISNULL( f.nchar_stoplist, '-' ), x.col_id HAVING count(*) > 1 |
このクエリは、ストップリストを表す文字列がまったく同じであるか、NO STOPLIST が指定されている場合のみ有効です。たとえば、ストップリスト 'a b c' とストップリスト 'a - b c' は、このクエリでは同じものとは見なされませんが、テキストインデックスを作成する際の重複のチェックでは同じものと見なされます。
正規表現 SIMILAR TO、REGEXP の各探索条件、および REGEXP_SUBSTR 関数の動作に変更が加えられました。変更の主な目的は、SIMILAR TO の ANSI/SQL 標準との整合性を保ちながら、REGEXP と REGEXP_SUBSTR の動作を Perl と整合させることにあります。
データベースの照合および一致 以前までは、REGEXP と REGEXP_SUBSTR は照合等価やソート順を使用して、パターン内のリテラルクラスや文字クラスの範囲が文字列と一致するかを判断していました。このリリースでは、REGEXP と REGEXP_SUBSTR はコードポイント値のバイナリ比較を使用して、範囲の一致や評価を行っています。この変更は、Perl 5.0 と動作の整合性が保たれるようにするため行われています。
SIMILAR TO は依然としてデータベース照合を使用して一致や範囲の評価を行っています。LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件を参照してください。
データベースの大文字と小文字の区別および [[:upper:]] と [[:lower:]] の部分文字クラス 大文字と小文字を区別しないデータベースでは、SIMILAR TO と REGEXP の [[:upper:]] と [[:lower:]] の部分文字クラスは区別されていませんでした。データベースでの大文字と小文字の区別にかかわらず、[[:upper:]] は大文字とだけ一致し、[[:lower:]] は小文字とだけ一致するように、これは変更されました。
メタ文字としての脱字記号 (^)、アンダースコア (_)、パーセント記号 (%) の処理 次の表に、メタ文字としての各文字がどのように処理されるかを、以前の動作と新しい動作に分けて示します。
文字 | 以前の動作 | 新しい動作 |
---|---|---|
_ (アンダースコア) | SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、アンダースコアはメタ文字として処理され、任意の 1 文字と一致していました。 |
SIMILAR TO では、アンダースコアはメタ文字として処理され、任意の 1 文字と一致します。 REGEXP と REGEXP_SUBSTR では、アンダースコアはメタ文字として処理されません。REGEXP と REGEXP_SUBSTR で任意の 1 文字と一致させるためには、代わりにピリオド (.) を使用します。 |
% | SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、パーセント記号はメタ文字として処理され、0 個以上の任意の文字列と一致していました。 |
SIMILAR TO では、パーセント記号はメタ文字として処理され、0 個以上の任意の文字列と一致します。 REGEXP と REGEXP_SUBSTR では、パーセント記号はメタ文字として処理されません。REGEXP と REGEXP_SUBSTR で任意の数の任意の文字と一致させるためには、代わりにピリオドとアスタリスク (.*) を使用します。 |
^ | SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、脱字記号は右にある文字の否定や減算として処理され、文字クラスの否定として解釈されていました。 |
SIMILAR TO では、脱字記号は右にある文字の否定や減算として処理されます。たとえば、 REGEXP と REGEXP_SUBSTR では、脱字記号は文字クラス内で先頭に位置する場合のみメタ文字として処理され、文字クラスの否定として解釈されます。たとえば、 |
アップグレードユーティリティ (dbupgrad) の動作の変更 データベースミラーリングに参加しているデータベースをアップグレードするために、アップグレードユーティリティを使用するとエラーになります。アップグレードユーティリティ (dbupgrad)を参照してください。
Mac OS X で dbmodenv が不要になった 以前のリリースでは、Mac OS X でグラフィカルな管理ツールを使用するためには、ユーザの $HOME/.MacOSX/environment.plist ファイルの PATH と DYLD_LIBRARY_PATH に、SQL Anywhere のバイナリとライブラリのロケーションを追加する必要がありました。そのために dbmodenv ツールを使用していました。SQL Anywhere は、$HOME/.MacOSX/environment.plist の設定に依存しなくなったため、dbmodenv を実行したり、SQL Anywhere をインストールした後にログアウトし、ログインし直す必要がなくなりました。
dbisqlc の OUTPUT 文から返される NULL 値のデフォルトが変更 以前のリリースでは、dbisqlc の OUTPUT 文を使用すると、文は NULL 値として (NULL) 値を返していました。このリリースでは、文で NULL 値のデフォルトとして空の文字列が返されるようになりました。output_nulls オプションを設定することで、NULL 値のエクスポート方法を変更できます。output_nulls オプション [Interactive SQL]を参照してください。
エンディアンのサポート アップグレード後、ビッグエンディアンコンピュータで作成された 11.0.1 よりも前のテキストインデックスは、トランケートおよびリフレッシュ (MANUAL REFRESH および AUTO REFRESH のテキストインデックスの場合)、または再作成 (IMMEDIATE REFRESH のインデックスの場合) が必要になります。
Mac OS X の管理ツール Mac OS X の SQL Anywhere 管理ツールで、64 ビットの JDK 1.6 が使用されるようになりました。管理ツールは、Apple JDK 1.6 (Mac OS X 10.5.2 以降) でサポートされている、64 ビットのプロセッサを搭載した Intel ベースの Macintosh コンピュータだけで動作します。Mac OS X 用の管理ツールを配備する場合、ネイティブライブラリは $SQLANY11/System/lib64 にあります。Linux、Solaris、Mac OS X における管理ツールの配備を参照してください。
HTTP クライアントのチャンクされた転送コーディングの新しいデフォルトサイズ
これまでは、HTTP クライアントから 2048 バイトを超えるデータが送信された場合、デフォルトで (またはユーザが CREATE PROCEDURE...SET 'HTTP(CH=auto)'
を指定した場合)、チャンクされた転送コーディングが試行されました。デフォルトのサイズが 2048 バイトから 8196 バイトに変更されました。また、チャンクされた転送コーディングを使用しないで要求を再発行する基準に、新しいステータス 411
Length Required が追加されました。CREATE PROCEDURE 文 [Web サービス]を参照してください。
ansi_substring オプションのサポート ansi_substring オプションはバージョン 11.0.0 で非推奨になりましたが、バージョン 11.0.1 でまたサポートされるようになりました。ansi_substring オプションを参照してください。
COMMENT ON EXTERNAL ENVIRONMENT OBJECT object-name この構文は COMMENT ON EXTERNAL OBJECT object-name に変更されました。以前の構文は現在でも受け入れられますが、今後のリリースではサポートされない可能性があります。COMMENT 文を参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |