|
|
DB2からの変数名を任意の変数名に変更する [OS]MVS
[リリース] 6.07, 6.08, 6.09E
[キーワード] access, db2, descriptor, variable, name, rename, view
[質問]バッチ形式またはプログラムでDB2のACCESSビューを作成するとき、ASSIGN=YESを指定するとSASが自動的に変数名を決めてしまいますが、これを任意の変数名で作成できますか。 [回答]
SASは、ACCESSディスクリプタ作成時に以下に示すルールに基づき自動的に変数名を決定します。 例: COMPANYNAME --> COMPANYN上記で作成した変数名が他の変数名と同じ場合、8文字のうち下2文字を0からの通し番号にします。
例: COMPNAME1 --> COMPNAME
COMPNAME2 --> COMPNAM0
COMPNAME3 --> COMPNAM1
. .
COMPNAME11 --> COMPNAM9
COMPNAME12 --> COMPNA10
SASのネーミングルールに反する文字(#など)が変数名に使用されている場合、その文字を「_」に置き換えます。
例: COMP#NM → COMP_NM
変数名には上記のルールが適用されるため、このルールをふまえた上でプログラムを作成する必要があります。
proc access dbms=db2;
create xxxx.xxxx.access;
/* ライブラリ参照名.accessディスクリプタ名 */
table=xxxxx.xxxxx;
/* DB2テーブル名 */
assign=yes;
rename vardb2=varsas 'var#db2'=varsas2 .........;
/* rename DB2側変数名=SAS側変数名 */
create xxxx.xxxx.view;
/* ライブラリ参照名.viewディスクリプタ名 */
select vardb2 'var#db2' ........;
subset where vardb2='key1' .....;
run;
quit;
RENAMEステートメント使用時には、次の点に注意してください。
VIEWディスクリプタ作成時のSELECTおよびSUBSET WHEREステートメントでは、DB2テーブルの変数名を記述します。 [参考]
|
|||||