0
%if %sysfunc(exist(working.__extra_nos__)) %then %do;
    proc export data=working.__extra_nos__
        dbms=oracle replace;
        password="&password.";
        tablename="sch.no_selection_&env_type.";
        url="&dburl.";
        username="&user.";
    run;

sch.no_selection_&env_type 还有一个名为 identifier 的列,它不在,__extra_nos__所以我想在导出时将它设置为 &identifier。

我怎样才能做到这一点?

4

2 回答 2

1

通过 LIBNAME 而不是 PROC EXPORT 访问数据库 DBMS 要容易得多。 http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a003113591.htm

libname mydblib oracle user=testuser password=testpass path=hrdept_002;

[调整您的 oracle 安装细节]

然后,您只需使用普通语言(SQL 或数据步骤)创建或修改表,而不是导出...

proc sql;
create table mydblib.sch.no_selection_&env_type. as
  select *, "&identifier" as identifier from work.tempextras;
quit;

或者

data mydblib.sch.no_selection_&env_type.;
set work.tempextras;
identifier="&identifier";
run;
于 2013-02-14T15:27:28.800 回答
0

从您的数据集创建一个数据集,__extra_nos__然后将标识符放入。然后导出该数据集。

 
数据工作.tempextras;
    设置工作.__extra_nos__;
    标识符 = &标识符。;
跑;


%if %sysfunc(exist(working.__extra_nos__)) %then %do;
    proc 导出数据=work.tempextras;
        dbms=oracle 替换;
        密码="&密码。";
        tablename="sch.no_selection_&env_type.";
        url="&dburl.";
        用户名="&user.";
    跑;

proc数据集库=工作;/*删除临时数据集*/
    删除模板;
跑;
于 2013-02-14T03:57:54.303 回答