如何使用工作表名称而不是工作表代码名称从 Oracle Apex(数据解析器)中的 xlsx 文件中提取数据?
How to extract data from xlsx file in Oracle Apex (data parser) using worksheet name rather than worksheet code name?
如何使用工作表名称而不是工作表代码从 Oracle apex 数据解析器的 xlsx 文件中提取或读取数据:
在下面的示例代码中,我们可以看到使用的是文件工作表代号:
SELECT line_number,
col001,
col002,
col003 FROM TABLE (apex_data_parser.parse (p_content => (SELECT file_content
FROM loader_files
WHERE id = 1),
p_file_name => 'data.xlsx',
**p_xlsx_sheet_name => 'sheet1.xml',**
p_skip_rows => 0));
我的要求是不用代号“sheet1.xml”而是使用工作表名称“employees”,原因是我们需要从多个工作表中提取数据以及工作表的位置可能会更改,更改工作表代码名称并因此破坏我的代码。
有什么办法可以做到吗?
使用函数GET_XLSX_WORKSHEETS将SHEET_DISPLAY_NAME
转换为SHEET_FILE_NAME
:
select
line_number, col001, col002, col003
from table
(
apex_data_parser.parse
(
p_content => (select file_content from loader_files where id = 1),
p_file_name => 'data.xlsx',
p_skip_rows => 0,
p_xlsx_sheet_name =>
(
select sheet_file_name
from table
(
apex_data_parser.get_xlsx_worksheets
(
p_content => (select file_content from loader_files where id = 1)
)
)
where sheet_display_name = 'employees'
)
)
);
如何使用工作表名称而不是工作表代码从 Oracle apex 数据解析器的 xlsx 文件中提取或读取数据:
在下面的示例代码中,我们可以看到使用的是文件工作表代号:
SELECT line_number,
col001,
col002,
col003 FROM TABLE (apex_data_parser.parse (p_content => (SELECT file_content
FROM loader_files
WHERE id = 1),
p_file_name => 'data.xlsx',
**p_xlsx_sheet_name => 'sheet1.xml',**
p_skip_rows => 0));
我的要求是不用代号“sheet1.xml”而是使用工作表名称“employees”,原因是我们需要从多个工作表中提取数据以及工作表的位置可能会更改,更改工作表代码名称并因此破坏我的代码。
有什么办法可以做到吗?
使用函数GET_XLSX_WORKSHEETS将SHEET_DISPLAY_NAME
转换为SHEET_FILE_NAME
:
select
line_number, col001, col002, col003
from table
(
apex_data_parser.parse
(
p_content => (select file_content from loader_files where id = 1),
p_file_name => 'data.xlsx',
p_skip_rows => 0,
p_xlsx_sheet_name =>
(
select sheet_file_name
from table
(
apex_data_parser.get_xlsx_worksheets
(
p_content => (select file_content from loader_files where id = 1)
)
)
where sheet_display_name = 'employees'
)
)
);