sas enterprise guide 在 table 已经存在时将 csv 文件导入关系数据库

sas enterprise guide import csv file into relational database while the table already exists

我想使用 sas enterprise guide 8.3 将 csv 文件导入关系数据库。 我启动导入数据向导,在本地文件夹(Windows OS) 中找到csv 文件,然后找到关系数据库的库。在 GUI 中,我无法设置源和目标之间的映射。目标是关系数据库中的 table,它比 csv 文件具有更多字段。 导入数据向导失败,因为向导试图替换已经存在的 table。

所以我不能使用导入数据向导来实现我的目标?仅使用以下代码 ?

Libname TD teradata userid=xxxx password=xxxx fastload=Yes
proc import 
        dbms=csv                    /* specify you load comma separated data */
        datafile="C:\temp\test.csv" /* fill in your data file                */
        out=TD;                    /* specify de dataset to load it to      */
      /*  replace;                   so TEST will not replaced if it exists */
run;

我不确定上面的代码能否解决我的问题:out =TD 没有指定table名称,只是指定了目标数据库。非常感谢!

听起来您正在尝试使用 SAS 将此 .csv 文件附加到现有的 Teradata table。您可以分两步完成此操作:

  1. 将 .csv 文件作为临时 SAS 导入 SAS table(或者,如果需要,您可以将其作为 Teradata 中的临时 table 导入)
  2. 将临时 SAS table 附加到主 Teradata table

SAS Teradata Access Engine 将处理从一个数据库到另一个数据库的所有代码转换:

Libname TD teradata userid=xxxx password=xxxx fastload=Yes;

proc import 
    dbms = csv                    
    file = "C:\temp\test.csv" 
    out  = tempTable;                    
    replace;                  
run;

proc append base = td.have
            data = tempTable
            force;
run;

或者您可以使用 SQL 附加:

proc sql;
    insert into td.have
        select * from tempTable
    ;
quit;