前のページ|次のページ

CVPBYTES=オプション、CVPENGINE=オプション、CVPMULTIPLIER=オプション

SASファイルをトランスコードするために必要とされる文字変数の属性を指定します。

該当要素: LIBNAMEステートメント
カテゴリ: データアクセス
PROC OPTIONS GROUP= 現在の動作環境(Windows、UNIX、Z/OS) 向けのドキュメント内のLIBNAMEステートメント
参照項目: LIBNAME、SAS/ACCESS

構文

LIBNAME libref <CVPBYTES=bytes> <CVPENGINE=engine>
<CVPMULTIPLIER=multiplier> 'SAS data-library';

オプション引数

CVPBYTES=bytes

トランスコーディングを必要とするSASデータファイルを処理するときに、拡張する文字変数の長さをバイト数で指定します。CVPエンジンは、長さを拡張することにより、文字データの切り捨てが発生しないようにします。文字変数の長さは、指定した値を現在の長さに追加して増やします。0から32766までの値を指定できます。

たとえば、次のLIBNAMEステートメントでは、CVPBYTES=オプションを指定してCVPエンジンを暗黙的に割り当てています。
libname expand 'SAS data-library' cvpbytes=5;
文字変数の長さは、5バイト追加して増やします。長さが10の文字変数は長さ15に、長さが100の文字変数は長さ105に増加します。
デフォルト CVPBYTES=を指定すると、指定値に従って文字変数の長さを拡張するためにCVPエンジンを自動的に使用します。CVPエンジンを明示的に割り当てても、CVPBYTES=またはCVPMULTIPLIER=を指定しない場合は、CVPMULTIPLIER=1.5を使用して文字変数を長くします。
制限事項 CVPエンジンは、SASデータファイルをサポートしていますが、SASのビュー、カタログおよびアイテムストアなどはサポートしていません。
CVPエンジンは、入力(読み込み)処理でのみ使用できます。
CVPエンジンなどのエンジンが混在するライブラリ連結では、SASデータファイルのみが処理されます。たとえば、COPYプロシジャを実行する場合は、SASデータファイルのみコピーされます。
要件 指定するバイト数は、どのような拡張にも適応できる大きさにする必要があります。この大きさが不十分だと、データが切り捨てられ、その結果SASログにエラーメッセージが書き込まれます。
操作 CVPBYTES=とCVPMULTIPLIER=の両方を指定できません。いずれか1つのオプションを指定してください。
参照項目 CVPエンジンを使用した文字データ切り捨てへの対応

CVPENGINE=engine

トランスコーディングを必要とするSASデータファイルを処理するために使用するエンジンを指定します。トランスコードする文字変数の長さがCVPエンジンによって拡張されるため、文字データの切り捨ては発生しません。次に、指定されたエンジンで実際のファイル処理を実行します。

別名 CVPENG
デフォルト SASは、デフォルトのSASエンジンを使用します。
参照項目 CVPエンジンを使用した文字データ切り捨てへの対応

CVPMULTIPLIER=multiplier

トランスコーディングを必要とするSASデータファイルを処理するときに、文字変数の長さを拡張するための乗数値を指定します。CVPエンジンは、長さを拡張することにより、文字データの切り捨てが発生しないようにします。文字変数の長さは、指定した値を現在の長さに乗算して増やします。1から5までの乗数値を指定できます。

たとえば、次のLIBNAMEステートメントでは、CVPMULTIPLIER=オプションを指定してCVPエンジンを暗黙的に割り当てています。
libname expand 'SAS data-library' cvpmultiplier=2.5;
文字変数の長さは2.5倍になります。長さが10の文字変数は長さ25に、長さが100の文字変数は長さ250に増加します。
別名 CVPMULT
デフォルト CVPMULTIPLIER=を指定すると、指定値に従って文字変数の長さを拡張するためにCVPエンジンを自動的に使用します。CVPエンジンを明示的に割り当てても、CVPMULTIPLIER=またはCVPBYTES=を指定しない場合は、CVPMULTIPLIER=1.5を使用して文字変数を長くします。
制限事項 CVPエンジンは、SASデータファイルをサポートしていますが、SASのビュー、カタログおよびアイテムストアなどはサポートしていません。
CVPエンジンは、入力(読み込み)処理でのみ使用できます。
CVPエンジンなどのエンジンが混在するライブラリ連結では、SASデータファイルのみが処理されます。たとえば、COPYプロシジャを実行する場合は、SASデータファイルのみコピーされます。
要件 指定するバイト数は、どのような拡張にも適応できる大きさにする必要があります。この大きさが不十分だと、データが切り捨てられ、その結果SASログにエラーが書き込まれます。
操作 CVPMULTIPLIER=とCVPBYTES=の両方を指定できません。いずれか1つのオプションを指定してください。
参照項目 CVPエンジンを使用した文字データ切り捨てへの対応

例: CVP (文字変数埋め込み)エンジンの使用

次の例に、CVPエンジンを使用して文字データの切り捨てを回避する方法を示します。例では、Wlatin2エンコーディングの一部の各国語文字を含むMYFILES.WLATIN2という名前のSASデータセットを使用します。
libname myfiles 'C:\Documents and Settings\sasdxw\My Documents\myfiles';
data myfiles.wlatin2 (encoding=wlatin2);                                                                                                
   var1='41'x;                                                                                                                          
   var2='8a'x;                                                                                                                          
   var3='9c'x;                                                                                                                          
   var4='b3'x;                                                                                                                          
;                                                                                                                                       
proc print data=myfiles.wlatin2;                                                                                                        
run;   
SAS System
これは、MYFILES.WLATIN2でのPROC CONTENTS出力です。エンコーディングがWlatin2で、各文字変数の長さが1バイトであることを示しています。
MYFILES.WLATIN2のPROC CONTENTS出力
                                       The SAS System                                         1
                                     The CONTENTS Procedure
     Data Set Name        MYFILES.WLATIN2                          Observations          1
     Member Type          DATA                                     Variables             4
     Engine               V9                                       Indexes               0
     Created              Thursday, November 07, 2003 02:02:36     Observation Length    4
     Last Modified        Thursday, November 07, 2003 02:02:36     Deleted Observations  0
     Protection                                                    Compressed            NO
     Data Set Type                                                 Sorted                NO
     Label
     Data Representation  WINDOWS_32
     Encoding             wlatin2  Central Europe (Windows)
                                Engine/Host Dependent Information
     Data Set Page Size          4096
     Number of Data Set Pages    1
     First Data Page             1
     Max Obs per Page            987
     Obs in First Data Page      1
     Number of Data Set Repairs  0
     File Name                   C:\Documents and Settings\xxxxxx\My
                                 Documents\myfiles\wlatin2.sas7bdat
     Release Created             9.0100A0
     Host Created                XP_PRO
                           Alphabetic List of Variables and Attributes
                                  #    Variable    Type    Len
                                  1    Var1        Char      1
                                  2    Var2        Char      1
                                  3    Var3        Char      1
                                  4    Var4        Char      1
次のコードがセッションエンコーディングWlatin2を使用して実行されます。
options msglevel=i; 
libname myfiles 'SAS data-library';
data myfiles.utf8 (encoding="utf-8");
   set myfiles.wlatin2;
run; 
このDATAステップでは、新しいデータセットMYFILES.UTF8を作成し、データをUTF-8エンコーディングのこの新しいデータセットに読み込む(つまり、Wlatin2からUTF-8へのデータのトランスコードが必要)ことを要求します。要求は、トランスコーディングによって起こる文字データの切り捨てが原因でエラー終了します。新規データセットMYFILES.UTF8が作成されますが、データは何も含まれていません。
トランスコーディングエラーのSASログ
   1 options msglevel=i; 2 libname myfiles 'C:\Documents and Settings\xxxxxx\My Documents\myfiles'; NOTE:ライブラリ参照名MYFILESを次のように割り当てました。エンジン:        V9 外部ファイル名:C:\Documents and Settings\xxxxxx\My Documents\myfiles 3 data myfiles.utf8 (encoding="utf-8"); 4 set myfiles.wlatin2; 5 run; INFO:データファイルMYFILES.UTF8.DATAに他のホストにネイティブな形式が使用されているか、またはエンコーディングがセッションエンコーディングと一致していません。クロス環境データアクセスが使用され、パフォーマンスの低下と追加のCPUリソースが必要となる場合もあります。ERROR:データセット MYFILES.UTF8のトランスコード時に文字データが一部損失しました。注意:DATA ステップは異常終了しました。注意:エラーが発生したため、このステップの処理を中止しました。注意:データセットMYFILES.WLATIN2から1オブザベーションを読み込みました。WARNING:データセットMYFILES.UTF8は未完成です。このステップは、0オブザベーション、4変数で停止しました。
次のコードがセッションエンコーディングWlatin2を使用して再度実行されます。
options msglevel=i;
libname myfiles 'SAS data-library';
libname expand cvp 'SAS data-library' cvpbytes=2; 
data myfiles.utf8 (encoding="utf-8"); 
   set expand.wlatin2;
run;
この例では、CVPエンジンを使用し、それぞれの長さに2バイトを追加して文字変数の長さを拡張します。データは、Wlatin2からUTF-8にトランスコードされることにより、UTF-8エンコーディングで新規ファイルに読み込まれます。拡張された文字変数の長さが原因のデータの切り捨ては発生せず、新規データセットが正常に作成されます。
MYFILES.UTF8のSASログ出力
   12 options msglevel=i; 13 libname myfiles 'C:\Documents and Settings\xxxxxx\My Documents\myfiles'; NOTE:エンジンタイプの異なるファイルがライブラリMYFILESのディレクトリに存在します。注意:ライブラリ参照名MYFILESを次のように割り当てました。エンジン:        V9 外部ファイル名:C:\Documents and Settings\xxxxxx\My Documents\myfiles 14 libname expand cvp 'C:\Documents and Settings\xxxxxx\My Documents\myfiles' cvpbytes=2; WARNING:ライブラリ参照名EXPANDはMYFILESと同じ物理ライブラリを参照しています。注意:ライブラリ参照名EXPANDを次のように割り当てました。エンジン:        CVP 外部ファイル名:C:\Documents and Settings\xxxxxx\My Documents\myfiles 15 data myfiles.utf8 (encoding="utf-8"); 16 set expand.wlatin2; 17 run; INFO:データファイルMYFILES.UTF8.DATAに他のホストにネイティブな形式が使用されているか、またはエンコーディングがセッションエンコーディングと一致していません。クロス環境データアクセスが使用され、パフォーマンスの低下と追加のCPUリソースが必要となる場合もあります。注意:データセットEXPAND.WLATIN2から1オブザベーションを読み込みました。注意:データセットMYFILES.UTF8には1オブザベーションと4変数があります。
最後に示すのはMYFILES.UTF8のPROC CONTENTS出力です。これは、UTF-8エンコーディングで表示され、各文字変数の長さは3です。
MYFILES.UTF8のPROC CONTENTS出力
                                         The SAS System                                         1
                                     The CONTENTS Procedure
     Data Set Name        MYFILES.UTF8                             Observations          1
     Member Type          DATA                                     Variables             4
     Engine               V9                                       Indexes               0
     Created              Thursday, November 07, 2003 02:40:34     Observation Length    12
     Last Modified        Thursday, November 07, 2003 02:40:34     Deleted Observations  0
     Protection                                                    Compressed            NO
     Data Set Type                                                 Sorted                NO
     Label
     Data Representation  WINDOWS_32
     Encoding             utf-8  Unicode (UTF-8)
                                Engine/Host Dependent Information
     Data Set Page Size          4096
     Number of Data Set Pages    1
     First Data Page             1
     Max Obs per Page            335
     Obs in First Data Page      1
     Number of Data Set Repairs  0
     File Name                   C:\Documents and Settings\xxxxxx\My Documents\myfiles\utf8.sas7bdat
     Release Created             9.0100A0
     Host Created                XP_PRO
                           Alphabetic List of Variables and Attributes
                                  #    Variable    Type    Len
                                  1    Var1        Char      3
                                  2    Var2        Char      3
                                  3    Var3        Char      3
                                  4    Var4        Char      3
前のページ|次のページ|ページの先頭へ