将常量与 DB2 for z 上的 DB2 UNLOAD 实用程序一起使用



我正在处理数据升级问题。

新列已添加到我们的现有 DB2 表中。

为了升级客户端的 DB2 表,我正在使用新列的常量值(假设 SMALLINT 类型的 D(从现有 DB2 表中卸载数据,如下所示:

UNLOAD TABLESPACE XYZ.ABC                                       
DELIMITED COLDEL X'2C' CHARDEL X'22'
PUNCHDDN SYSPUN01                                                       
UNLDDN   SYSREC01 CCSID(367)                                                      
FROM TABLE DB2BG111.table_name                                             
(                                                                       
A                              POSITION(*) CHAR(2)           
, B                              POSITION(*) SMALLINT          
, C                              POSITION(*) CHAR(4)           
, D (new column)                 CONSTANT X'0000'              
)                                   

在卸载数据时,我们使用以下卸载参数:

X'2C': Column Delimiter            
X'22': Character Delimiter            
CCSID(367): EBCDIC to ASCII conversion

我面临的问题是,DB2 在卸载记录中 D 列的值之后添加了字符分隔符 X'22'。

请注意,列 B 是现有列,声明为 SMALLINT,DB2 不会在卸载记录中添加字符 del。

这可能是因为此处添加的新列 D 未声明为 SMALLINT,因此它不被视为 SMALLINT,并且 DB2 在卸载记录中为此结束

了字符。 我只是在寻找一种摆脱这种情况的方法,我不希望我的新 D 列在卸载记录中被字符分隔。

任何克服这个问题的建议将不胜感激。

一种选择是使用 DSNTIAUL 执行卸载,然后在选择列表中选择常量。

选择 A、B、C、CAST(0 作为 SMALLINT(作为 D 从表DB2BG111.table_name;

此致敬意 帕特里克·博斯曼

最新更新