Db2 for I:Cpyf*nochk仿真
在IBM i系统中,可以使用Db2 for I:Cpyf*nochk仿真,db2,ibm-midrange,db2-400,Db2,Ibm Midrange,Db2 400,在IBM i系统中,可以使用Cpyf*nochk将结构化文件复制到无结构文件 如何使用sql实现这一点 真的没有一个简单的方法 最接近的方法是使用CONCAT构建一个大字符串 insert into flatfile select mycharfld1 concat cast(myvchar as char(20)) concat digits(zonedFld3) from mytable 这适用于固定长度、varchar(如果强制转换为char)和分区
Cpyf*nochk
将结构化文件复制到无结构文件
如何使用sql实现这一点 真的没有一个简单的方法 最接近的方法是使用CONCAT构建一个大字符串
insert into flatfile
select mycharfld1
concat cast(myvchar as char(20))
concat digits(zonedFld3)
from mytable
这适用于固定长度、varchar(如果强制转换为char)和分区十进制
压缩小数将有问题
我见过一些用户定义的函数,它们可以返回组成压缩十进制数的二进制字符串……但这非常难看
我质疑您为什么认为需要这样做。您可以使用QSYS2.QCMDEXC存储过程来执行OS命令 例如: 调用qsys2.qcmdex('CPYF FROMFILE(QTEMP/FILE1)TOFILE(QTEMP/FILE2)MBROPT(*replace)FMTOPT(*NOCHK)如果您使用的是DDL定义的表,答案可能是“您不能”。问题是,
*NOCHK
只是像平面文件一样将数据转储到文件中。使用CRTPF
定义的文件,无论是源文件还是程序定义的文件,在读取之前都不关心坏数据,因此它们可能包含坏数据。事实上,如果对文件使用程序定义,甚至可以从文件中读取坏数据
但是,SQL表(使用DDL定义的表)不能包含坏数据。无论您如何编写,数据库都会在写入时验证数据。即使是CPYF
命令的*NOCHK
选项也无法将坏数据强制到SQL表中