|
SET DEFAULTCOLLATE ステートメントは、CHAR、VARCHAR または LONGVARCHAR データ型の列すべてに使用するコレーティング シーケンス ファイルを指定できます。
SET DEFAULTCOLLATE ステートメントは、多数の列のコレーティング シーケンスを個別で設定するより、もっと便利なセッションの設定方法を提供します。
選択すれば、個々の列でコレーティング シーケンスを指定することもできます。列定義の一部として COLLATE キーワードを使用すると、その特定の列の SET DEFAULTCOLLATE 設定は無効になります。ALTER TABLE および CREATE TABLE の列定義を参照してください。
SET DEFAULTCOLLATE の "NULL" パラメーターによって、セッションはオルタネート コレーティング シーケンス(ACS)ファイルを使用しなくなります。個別に COLLATE が定義されている列を除き、どのテキスト列にもコレーティング シーケンスは適用されません。ACS ファイルは、トランザクショナル インターフェイスの ACS で使用される形式と同じ 265 バイト イメージです。『Pervasive PSQL Programmer's Guide』のユーザー定義 ACS を参照してください。
DEFAULTCOLLATE のデフォルトのセッション設定はヌルです。
以下の要件が acs パス パラメーターに適用されます。
Pervasive PSQL ファイルのデフォルトの保存場所については、『Getting Started with Pervasive PSQL』の Pervasive PSQL ファイルはどこにインストールされますか?を参照してください。
次の例では、Pervasive PSQL で提供される upper.alt ファイルを使用して、デフォルトのコレーティング シーケンスを設定します。テーブル t1 は、3 つのテキスト列と 3 つのテキスト以外の列で作成されます。SELECT ステートメントを Pervasive PSQL のシステム テーブルに対して実行し、t1 内の列の ID、データ型、サイズ、および属性を返します。結果は、3 つのテキスト列が "UPPER" 属性を持っていることを示しています。
SET DEFAULTCOLLATE = 'file_path¥upper.alt' DROP TABLE t1 CREATE TABLE t1 (c1 INT, c2 CHAR(10), c3 BINARY(10), c4 VARCHAR(10), c5 LONGVARBINARY, c6 LONGVARCHAR) SELECT * FROM x$attrib WHERE xa$id in (SELECT xe$id FROM x$field WHERE xe$file = (SELECT xf$id FROM x$file WHERE xf$name = 't1')) Xa$Id Xa$Type Xa$ASize Xa$Attrs ===== ======= ======== ======== 327 O 265 UPPER 329 O 265 UPPER 331 O 265 UPPER 3 行が影響を受けました。
次の例でもテーブル t1 を引き続き使用します。ALTER TABLE ステートメントによって、テキスト列 c2 を CHAR から INTEGER に変更します。SELECT ステートメントの結果は、2 列だけがデフォルト コレーティングの影響を受けていることを示しています。
ALTER TABLE t1 ALTER c2 INT SELECT * FROM x$attrib WHERE xa$id in (SELECT xe$id FROM x$field WHERE xe$file = (SELECT xf$id FROM x$file WHERE xf$name = 't1')) Xa$Id Xa$Type Xa$ASize Xa$Attrs ===== ======= ======== ======== 329 O 265 UPPER 331 O 265 UPPER 2 行が影響を受けました。
次の例では、ALTER TABLE ステートメントを使用して、テーブル t1 の列 c1 を INTEGER から CHAR に変更します。SELECT ステートメントの結果は、3 列がデフォルト コレーティングの影響を受けていることを示しています。
ALTER TABLE t1 ALTER c1 CHAR(10) SELECT * FROM x$attrib WHERE xa$id in (SELECT xe$id FROM x$field WHERE xe$file = (SELECT xf$id FROM x$file WHERE xf$name = 't1')) Xa$Id Xa$Type Xa$ASize Xa$Attrs ===== ======= ======== ======== 326 O 265 UPPER 329 O 265 UPPER 331 O 265 UPPER 3 行が影響を受けました。
|