DB2 сохранить CLOB (>16Mb) в IFS
Я пытаюсь сохранить содержимое поля (CLOB) в файл на IFS (iSeries).
Файл не существует до сохранения содержимого, и файл создается безупречно, но я не знаю, почему в начале (всегда позиции 1 и 2) файл содержит два нечетных символа. Эти характеристики не всегда одинаковы.
Я думаю, что это проблема с преобразованием между полем clob и файлом (ifs - smtf) Кто-нибудь, как решить эту проблему?
Заранее спасибо!!
П.Д.: Извините, я не могу прикрепить изображение, потому что мне нужно как минимум 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));
1 ответ
Английское руководство по RPG называет это "длина-префикс". Это 2 байта для переменной от 1 до 63353 байтов и 4 байта для больших переменных. Измените запись () на:
write(fd: %addr(xmlEntrada: *DATA): %len(xmlEntrada));
и пусть компилятор определит размер префикса длины.
Если в более раннем выпуске, попробуйте
write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada));