我正在处理数据升级问题。
新列已添加到我们的现有 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;
此致敬意 帕特里克·博斯曼