Oracle APEX - проблемы с обработкой данных Excel

На моей странице есть функция «Обзор файлов», которая позволяет пользователю выбрать файл Excel. Затем, когда нажимается кнопка, страница отправляется, и я вызываю процесс, который извлекает данные из apex_application_temp_files на основе выбранного имени файла.

Данные, которые я отображаю в классическом отчете, используя следующий запрос

SELECT col001,col002
FROM apex_application_temp_files f, 
     table( apex_data_parser.parse(
              p_content                     => f.blob_content,
              p_add_headers_row             => 'N',
              p_xlsx_sheet_name             => NULL,
              p_max_rows                    => 500,
              p_store_profile_to_collection => 'FILE_PARSER_COLLECTION',
              p_file_name                   => f.filename
           ))
WHERE f.name = :P2_FILE_BROWSE

Данные отображаются нормально, но когда я пытаюсь обработать данные для их отображения, данные не извлекаются. Я использую тот же запрос:

FOR x IN (SELECT col001,col002
    FROM apex_application_temp_files f, 
    table( apex_data_parser.parse(
              p_content                     => f.blob_content,
              p_add_headers_row             => 'N',
              p_xlsx_sheet_name             => NULL,
              p_max_rows                    => 500,
              p_store_profile_to_collection => 'FILE_PARSER_COLLECTION',
              p_file_name                   => f.filename
          ))
WHERE f.name = :P2_FILE_BROWSE) 
LOOP
    apex_debug.message('First field is ', x.col001);
    apex_debug.message('Second field is ', x.col002);
END LOOP;

Не уверен, что происходит и почему данные не отображаются. Что я делаю неправильно?


person Coding Duchess    schedule 26.08.2020    source источник


Ответы (1)


Похоже, что записи извлекаются, но отладка не отображает их, потому что% s отсутствует в сообщении. Кроме того, отладку необходимо включить перед выдачей отладочных операторов.

apex_debug.enable;
apex_debug.message('First field is %s', x.col001);
apex_debug.message('Second field is %s', x.col002);
person nee11amr    schedule 27.08.2020
comment
Благодарность! это сработало. Думаю, я привык к console.log, где %s не нужен - person Coding Duchess; 27.08.2020