0

关于我的错误消息,我有以下问题。我尝试先格式化然后插入到dw中使用。

26         proc sql   noprint;
27             connect to netezza  (user=jfan0001 pwd=Xw9b548s SERVER=bsnet01z database=PDWAPPRP  connection=global autocommit=yes);
29             execute ( create temporary table STDY 30                              ( SUB_NUM char(13) )) by netezza;
31             execute ( create temporary table ANTIB 32                              ( NDC char(11) )) by netezza;
33          
34         
35          
36             insert into dw.STDY (bulkload=YES   bl_options='logdir "."') 
37                         select SUB_NUM from pulllist       
38                          where flag='study';


ERROR: The open failed because library member DW.STDY.DATA is damaged.
NOTE: Data file SPARC.PULLLIST.DATA is in a format that is native to another host, or the file encoding does not match the session 
  encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
  performance.
4

1 回答 1

0

可能是表 DW.STDY 不是在您当前的主机(服务器/PC)上创建的,而是从其他操作系统复制或由其他版本的 SAS 创建的?

检查表属性:

proc sql;
select libname, memname, datarep, datarepname, encoding from dictionary.tables
where libname ='DW'
and memname = 'STDY'
;
quit;

如果 datarep 不是 NATIVE,则必须重新创建表才能对其进行修改。您可以重新创建它,例如通过复制到 WORK 并返回到 DW。

proc copy noclone in=DW out=WORK index=yes constraint=yes;
select STDY;
run;

proc copy in=DW out=WORK index=yes constraint=yes;
select STDY;
run;

请注意NOCLONE第一个 proc 副本中的选项以摆脱原始数据表示。

于 2013-09-13T07:47:54.590 回答