2014-11-29 2 views
1

Я пытаюсь сохранить содержимое поля (CLOB) в файл на IFS (iSeries).DB2 save CLOB (> 16Mb) в IFS

Файл не существует до сохранения содержимого, и файл создан отлично, но я не знаю, почему в начале (всегда позиция 1 и 2) файл содержит два нечетных символа. Эти символы не всегда одинаковы.

Я думаю, что это проблема с преобразованием поля clob в файл (ifs - smtf) Кто-нибудь, как решить эту проблему?

Спасибо заранее!

PD.:Sorry, я не могу прикрепить изображение, потому что мне нужно как минимум 10 репутации для отправки изображений.


Переменная Definiton в 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

Вы можете разместить ссылку на сервис фотоизображение ведра. – carlodurso

+0

https://drive.google.com/file/d/0B_3t1a8hlFj4T0lVQWhpMXh2NXM/view?usp=sharing – sigsag

+0

Символы нечетные «A» перед первым тегом « sigsag

ответ

2

В English RPG manual называет это 'Длина префикса'. Это 2 байта для переменной между 1 и 63353 байтами и 4 байта для больших переменных. Изменение записи() к:

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

и пусть compiler determine the length-prefix size.

Если на более раннюю версию, попробуйте

write(fd: %addr(xmlEntrada)+4: %len(xmlEntrada)); 
+0

Я попытался, но теперь у меня есть ошибка: «* RNF0229 20 1 * DATA sólo es válido para% ADDR cuando la definición es un elemento de longitud переменная * DATA se ignora." -> * DATA RNF0229 действителен только для % ADDR, когда определение является элементом переменной длины; * DATA игнорируется. – sigsag

+1

ОК, так что вы находитесь в более раннем выпуске. Сделать это% addr (xmlEntrada) +4 –

+0

СПАСИБО, так много !! Оно работает!! XD – sigsag

Смежные вопросы