Поля, отсутствующие в файле CSV при записи с - UTL_FILE.put_line - PullRequest
0 голосов
/ 23 октября 2019

Мы столкнулись с проблемой при создании некоторых отчетов из базы данных 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);```
...