Я пытаюсь собрать пакет с процедурой, которая принимает файл .XLSX, анализирует и вставляет в таблицу в базе данных.
То, чего я достиг на данный момент, это код ниже:
create or replace package body pkg_name
is
procedure fetch_and_insert_data
is
l_display varchar2(32767);
l_id varchar2(32767);
l_filename varchar2(100) := 'my_file.xlsx';
v_file UTL_FILE.FILE_TYPE;
begin
execute immediate 'create or replace directory XOBJ as ''' || c_file_dir || '''';
v_file := UTL_FILE.FOPEN(location => 'XOBJ',
filename => l_filename,
open_mode => 'r',
max_linesize => 32767);
loop
begin
UTL_FILE.GET_LINE(v_file,l_id);
dbms_output.put_line(l_id);
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
end;
end loop;
UTL_FILE.FCLOSE(v_file);
EXCEPTION
WHEN OTHERS THEN
UTL_FILE.FCLOSE(v_file);
RAISE;
end fetch_and_insert_data;
end;
Но когда я запускаю его, он кодируется.
PK! Bîha [Content_Types] .xml ¢ (
¬»MOÃ0 † IHU ‡ WÔfã € Z · G~Äø¡q × hiÅÞØþ = nö!«Ê| ‰] μ ± ß ÷ ‰ kg4Y · 6 [Ada]) † Å @ DÀ ¯> - âcö'ß
Как я могу декодировать и поддерживать мою строку, как она есть в файле XLSX? Пробовал с файлом CSV и работает отлично, но мне нужно использовать файлы XLSX.
Также пробовал другие внешние пакеты, найденные в сети и не помогшие.