Netezza 的格式?错误信息是数据已损坏

Posted

技术标签:

【中文标题】Netezza 的格式?错误信息是数据已损坏【英文标题】:format at Netezza? and the error message is that the data was damaged 【发布时间】:2013-09-12 17:26:34 【问题描述】:

关于我的错误消息,我有以下问题。我尝试先格式化然后插入到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.

【问题讨论】:

请编辑您的问题并为dw 显示LIBNAME 语句。 1) 将您的用户名/密码/服务器编辑为匿名。 2) Netezza 临时表如何工作?这些是全局的,即任何会话都可用,还是它们在创建它们的会话中是本地的?如果是后者,您的LIBNAME 连接和CONNECT TO NETEZZA 连接在技术上是独立的会话,尽管它们来自同一台PC。在 SQL SERVER 中,这将无法正常工作。 【参考方案1】:

可能是表 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;

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

【讨论】:

STDY 是在上面创建的临时表。 CEDA 警告是关于 SPARC.PULLIST,这可能不是问题(“损坏”位是)。

以上是关于Netezza 的格式?错误信息是数据已损坏的主要内容,如果未能解决你的问题,请参考以下文章

封装表单自定义错误信息。(阻止默认错误信息提示,添加自定义错误信息提示)

mysqli_query() 没有响应,甚至 mysqli_error() 也没有给出错误信息

配置接口配置文件 明确指出错误信息(“/”服务器上出现应用程序错误)

web.xml配置错误页面,及输出错误信息

Mongoose .insertOne() 不工作(没有给出错误信息)

如何让log4j日志只输出错误信息