CIMPORT プロシジャ
例4: PROC CIMPORTを使用してフランス語のデータセットをUTF-8SASセッションにインポートする
| 要素: |
|
詳細
この例は、フランス語のデータセットをUTF-8SASセッションにインポートする方法を示しています。フランス語のデータセットには、文字形式が$8の8バイトの文字変数aがあります。SAS Viyaプラットフォームの配置を使用して、PROC CPORTを使用してmyfileという名前の移送ファイルを生成するフランス語のSASセッションを開始します。
別のSAS Viyaプラットフォームウィンドウで、UTF-8エンコーディングを使用するSASセッションを開始します。次に、PROC CIMPORTを使用して移送ファイル(非UTF-8)をUTF-8SASセッションにインポートします。最初に、インポートされたデータセットが切り捨てられることを示し、次にEXTENDVAR=オプションを使用して可変長を拡張して切り捨てを回避する方法を示します。
プログラム
PROC CPORTを使用して、フランス語のデータセットに対し移送ファイルを作成します。SAS Viyaプラットフォームの配置から、フランス語を使用してデフォルトのSASセッションを起動します。次の例では、データセットに8バイトの文字変数a(aの値はアクセント付きのeが付いたpremiere)があり、文字フォーマットが$8に設定されているフランス語のデータセットを使用しています。PROC
CPORTを使用してトランスポートファイルを作成します。この例では、エンコーディングはデフォルトのwlatin-1です。
data test;
a = 'première';
format a $8.;
run;
proc cport data=test file='myfile';
run;
PROC CPORTファイルで使用されるフランス語のデータセット

PROC CIMPORTを使用して、UTF-8 SASセッションに移送ファイルをインポートします。UTF-8エンコーディングを使用している別のSAS Viyaプラットフォームセッションから、PROC CIMPORTを使用してトランスポートファイルmyfileをUTF-8
SASセッションにインポートします。SASデータセットとPROC CONTENTSを出力します。アクセント付きのeをUTF-8エンコーディングで格納するには2バイト必要であるため、値のpremiereには値を表示するために9バイトが必要です。形式は$8です。したがって、値は切り捨てられます。
proc cimport data=test infile='myfile';
run;
proc print data=test;
run;
proc contents data=test;
run;
非UTF-8トランスポートファイルをUTF-8 - TruncatedのエンコーディングセッションにCIMPORT

切り捨てを回避するために可変長を拡張します。切り捨てがあったため、EXTENDVAR=オプションを使用して、可変長とフォーマット幅を拡張します(EXTENDFORMAT=のデフォルトはYESです)。
proc cimport data=test infile='myfile' extendvar=1.5;
run;
proc print data=test;
run;
proc contents data=test;
run;
出力データセットに変数全体が含まれていることに注意してください。また、PROC CONTENTSの出力で、可変長とフォーマット幅が拡張されていることに注意してください。
非UTF-8トランスポートファイルをUTF-8-EXTENDVAR=のエンコーディングセッションにCIMPORT

最終更新: 2026年9月18日