我正在尝试将字段(CLOB)的内容保存到IFS(iSeries)上的文件中。
在保存内容之前文件不存在并且文件创建完美,但我不知道为什么在开头(始终位置1和2)文件包含两个奇怪的字符。这个特征并不总是一样的。
我认为这是clob字段与文件之间转换的问题(ifs - smtf) 有谁怎么解决这个问题?
提前致谢!!
PD.:Sorry,我没有附上图片,因为我需要至少10个声望来发布图片。RPGLE中的变量定义
D xmlEntrada s sqltype(CLOB:10000000)
fd = open('/folder/file/file.xml':
O_WRONLY+O_CREAT+O_TRUNC:
O_RDWR : 819);
callp write(fd: %addr(xmlEntrada)+2: %len(xmlEntrada));
答案 0 :(得分:2)
English RPG manual将此称为'长度前缀'。对于1到63353字节之间的变量,这是2个字节,对于较大的变量,这是4个字节。将write()更改为:
write(fd: %addr(xmlEntrada: *DATA): %len(xmlEntrada));
并让compiler determine the length-prefix size。
如果是在早期版本中,请尝试
write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada));