1

我正在尝试将字段(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));
4

1 回答 1

2

英文RPG 手册将此称为“长度前缀”。对于 1 到 63353 字节之间的变量,这是 2 个字节,对于较大的变量,这是 4 个字节。将 write() 更改为:

write(fd: %addr(xmlEntrada: *DATA): %len(xmlEntrada));

并让编译器确定长度前缀大小

如果在早期版本中,请尝试

write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada));
于 2014-11-29T20:59:54.683 回答