我使用的包:xlsx_builder_pkg(从某个语句导出数据到excel文件)。我添加了一个附件:
- xlsx_builder_pkg.pkb
- xlsx_builder_pkg.pks
我尝试将所有数据从机构表导出到Excel文件,并使用一个名为国家的工作表。
我收到以下错误:
ORA-06502: PL/SQL: number or value error: text buffer too small
ORA-06512: "SYS.XLSX_BUILDER_PKG", line 1646
ORA-06512: "SYS.XLSX_BUILDER_PKG", line 1870
我运行的语句:
BEGIN
xlsx_builder_Pkg.clear_workbook;
xlsx_builder_pkg.new_sheet ('country');
xlsx_builder_pkg.query2sheet (p_sql => '**SELECT distinct name FROM system.institution where rownum < 500**', p_sheet => 1);
xlsx_builder_pkg.save ('country', 'country.xlsx');
END;
但是如果我使用语句'**SELECT distinct name FROM system.institution where rownum < 400**'
,它就可以完美地工作。我认为有文件大小的限制。但我能以何种方式改变它。
根据错误,我认为问题出在函数finish的某个地方
ORA-06512: "SYS.XLSX_BUILDER_PKG", line 1646
ORA-06512: "SYS.XLSX_BUILDER_PKG", line 1870
第1646行说明了t_tmp := t_tmp || t_str;
的问题
请帮帮我
我使用的包和包体如下:https://github.com/mortenbra/alexandria-plsql-utils/blob/master/ora/xlsx_builder_pkg.pkb
和
https://github.com/mortenbra/alexandria-plsql-utils/blob/master/ora/xlsx_builder_pkg.pks
1条答案
按热度按时间wlwcrazw1#
也许你在数据库中使用2字节编码?请将包中的所有位置从> 32000更改为> 16000。
为我帮助的错误