我正在尝试将字段(CLOB)的内容保存到IFS(iSeries)上的文件中。
在保存内容之前,该文件不存在,并且文件创建得很完美,但我不知道为什么在开头(总是位置 1 和 2)文件包含两个奇怪的字符。这个角色并不总是相同的。
我认为这是 clob 字段和文件之间的转换问题(ifs - smtf)有人如何解决这个问题吗?
提前感谢!!
PD.:对不起,我无法附加图片,因为我至少需要 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));
英文RPG手册称之为"长度前缀"。 对于介于 1 和 63353 字节之间的变量,这是 2 个字节,对于较大的变量,这是 4 个字节。 将 write() 更改为:
write(fd: %addr(xmlEntrada: *DATA): %len(xmlEntrada));
并让编译器确定长度前缀大小。
如果在早期版本中,请尝试
write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada));