Мы столкнулись с проблемой при создании некоторых отчетов из базы данных Oracle с помощью процедуры PL / SQL. Проблема в том, что некоторые поля в сгенерированных файлах CSV пустые.
Мы используем оператор select для извлечения строк из таблицы на основе критериев фильтра. Столбцы из каждой строки результата затем добавляются к переменной. v_invx_data_recordx VARCHAR2 (15000): = '';
Собранный v_invx_data_recordx позже зацикливается и записывается в файл со значением ниже - UTL_FILE.put_line (file_id, v_string_content);
Из кода не выдается исключение, файл CSVгенерируется, но между полями отсутствуют некоторые поля. Мы запустили запрос отдельно и увидели, что все поля доступны в запросе выбора. Любые входные данные о том, как эти поля могут отсутствовать во время выполнения? Будет ли проблема с пространством в oracle причиной такого поведения?
Ниже приведен соответствующий фрагмент кода
v_inv_xdata_recordx := v_invx_data_recordx
|| '"' || tab_invx_data_tabx (i).bdx_airport_codex
|| '"' || con_comma;
v_inv_xdata_recordx := v_invx_data_recordx
|| '"' || tab_invx_data_tabx (i).offx_airport_codex
|| '"' || con_comma;
p_tab_invx (i_line_count).file_contentx := v_invx_data_record;x
n_recx_countx := p_tab_invx.COUNT;
FOR i IN 1 .. n_recx_countx
LOOP
v_string_contentx := p_tab_inv (i).file_contentx;
UTL_FILE.put_line (file_id, v_string_contentx);
END LOOP;
UTL_FILE.put_line (file_id, v_string_contentx);```