Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの設定 » データベース・オプション » データベース・オプションの概要 » アルファベット順のオプション・リスト

 

ansi_blanks オプション [互換性]

文字データがクライアント・サイドでトランケートされるときの動作を制御します。

指定可能な値

On、Off

デフォルト

Off

備考

ansi_blanks オプションが効力を持つのは、データベースが文字列の比較で後続ブランクを無視し、フェッチした文字列を文字配列に埋め込む場合に限られます。これは、N の値が M 以上の場合に、データ型 CHAR(N) の値が C char(M) 変数に読み込まれるたびトランケーション・エラーを強制的に発生させます。ansi_blanks が Off に設定されていると、トランケーション・エラーは、少なくともブランク以外の文字がトランケートされた場合にのみ発生します。

Embedded SQL で ansi_blanks オプションが On に設定されている場合、データ型 DT_STRING の値を挿入するときには、sqllen フィールドを値が保存されているバッファの長さ (最低でも値の長さに末尾の NULL 文字を加えた長さ) に設定する必要があります。ansi_blanks が Off の場合、長さは NULL 文字の位置でのみ決定されます。ansi_blanks オプションの値は、接続が確立されたときに決定されます。接続が確立された後で ansi_blanks オプションの値を変更しても、sqllen Embedded SQL の動作には影響しません。

ブランク埋め込みが有効になっているデータベースでは、このオプションの設定によって、フェッチする式が CHAR または NCHARであり (VARCHAR または NVARCHAR ではない)、ホスト変数 char または nchar (VARCHAR または NVARCHAR ではない) に格納される場合に、トランケーション警告をクライアントに送信するかどうかが決まります。これらの条件が該当し、ホスト変数が小さすぎるために、フェッチされた式の最大長までブランクが埋め込まれることにより、変数に式を格納できなくなる場合は、トランケーション警告が発生し、フェッチされた式の最大長までブランクが埋め込まれた場合に式の格納に必要となる最小バイト数がインジケータに挿入されます。式が CHAR(N) または NCHAR(N) である場合、返される値の文字セット変換と文字長セマンティクスが考慮され、インジケータが N 以外の値に設定されることがあります。