Я пытаюсь записать некоторые данные в файл из оракула, используя pl / SQL.Мне кажется, что сценарий может работать только с линиями очень маленьких размеров.когда размер строки становится слишком большим, в файл добавляются разрывы строк, и я не могу понять, почему.
Пожалуйста, посмотрите.
Это мой код скрипта:
DECLARE
fHandle UTL_FILE.FILE_TYPE;
filename VARCHAR2(32000) := 'fil';
BEGIN
fHandle := UTL_FILE.FOPEN('dir', filename, 'w');
FOR i IN (SELECT colA, colB, substr(colC,1,20) as colC, colD FROM table)
--FOR i IN (SELECT colA, colB, colC, colD FROM table)
LOOP
utl_file.put_line(fHandle, i.colA||';'||i.ColB||';'||i.colC||';'||i.colD);
END LOOP;
UTL_FILE.FCLOSE(fHandle);
END;
Это таблица данных:
G100000 1 "AXE DE GUIDAGE D.20h7 LG 700 - POUR DERIVEUR COURSE 500" Obsolete
G200000 2 "AXE DE GUIDAGE D.20h7 LG 700 - POUR DERIVEUR COURSE 500" Released
G300000 1 "*** IDEM D620203-09 *** AIR COMPRESSOR - 1089057554 - PRESS.TRANSDUCER" Obsolete
G400000 1 "*** IDEM D620203-08 *** AIR COMPRESSOR - 1089057470 - TEMPERATURE SENSOR" Obsolete
Это вывод файла:
G100000;1;AXE DE GUIDAGE D.20h;Obsolete
G200000;2;AXE DE GUIDAGE D.20h;Released
S300000;1;*** IDEM D620203-08 ;Obsolete
S400000;1;*** IDEM D620203-09 ;Obsolete
Но если я поменяю строку 6 на строку 7, я получу такой результат:
G100000;1;*** IDEM D620203-08 ***
AIR COMPRESSOR - 1089057470 - TEMPERATURE SENSOR;Obsolete
G200000;2;AXE DE GUIDAGE D.20h7 LG 700
- POUR DERIVEUR COURSE 500;Released
G300000;1;*** IDEM D620203-09 ***
AIR COMPRESSOR - 1089057554 - PRESS.TRANSDUCER;Obsolete
G400000;1;AXE DE GUIDAGE D.20h7 LG 700
- POUR DERIVEUR COURSE 500;Obsolete
Любая помощь очень ценится.
BR Kresten