Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 报告错误:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小_Oracle_Plsql_Oracle Apex_Oracle Apex 5.1_Plsql Package - Fatal编程技术网

Oracle 报告错误:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小

Oracle 报告错误:ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小,oracle,plsql,oracle-apex,oracle-apex-5.1,plsql-package,Oracle,Plsql,Oracle Apex,Oracle Apex 5.1,Plsql Package,我收到此错误报告错误: ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 关于Oracle Apex v 20.2 当我试图将数据从.xlsx文件解析到报告窗口时,我将列数增加到85列以上,而我的excel文件仍然得到300多列 我的问题是: select line_number, col001, col002, col003, col004, col005, col006, col007, col008, col009, col010,

我收到此错误报告错误: ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 关于Oracle Apex v 20.2 当我试图将数据从.xlsx文件解析到报告窗口时,我将列数增加到85列以上,而我的excel文件仍然得到300多列

我的问题是:

select line_number, col001, col002, col003, col004, col005, 
               col006, col007, col008, col009, col010,
                    col011,col012,col013,col014,col015,col016,col017,col018,col019,col020,col021,col022,col023,col024,col025,col026,col027,col028,col029,
                col030,col031,col032,col033,col034,col035,col036,col037,col038,col039,col040,col041,col042,col043,col044,col045,col046,col047,col048,col049,col050,col051  
                ,col052,col053,col054,col055,col056,col057,col058,col059,col060,col061,col062,col063,col064,col065,col066,col067,col068,col069,col070,
               col071,col072,col073,col074,col075,col076
               ,col078,col079,col080,col081,col082,col083,col084
               col085,col086,col087,col088,col089,col090 
                -- more columns (col011 to col300) can be selected here.


from apex_application_temp_files f, 
   table( apex_data_parser.parse(
              p_content                     => f.blob_content,
              p_add_headers_row             => 'Y',
              --
              p_xlsx_sheet_name             => :PX_XLSX_WORKSHEET,
              --
              p_store_profile_to_collection => 'FILE_PARSER_COLLECTION',
              p_file_name                   => f.filename ) ) p


where f.name = :PX_FILE
但如果我只选择85列或更少,它就可以正常工作


任何帮助

据我所知,当你达到极限时,你是做不到的

但是,您可以使用以下选项之一:

  • 将文件分割成更小的块-4个文件,大约有80列(正如您所说,可以使用85列)。每一行都应该包含唯一标识每一行的
    ID
    列,以便以后可以“合并”它们。这个过程可能需要4个不同的数据库表,以及随后的一些编程工作
  • 将文件另存为CSV(文本)文件。使用SQL Loader将其加载到数据库中。它没有这样的限制,而且速度非常快,所以您可以在一次运行中加载所有内容。
    • 或者,您可以将该文件用作外部表的源。请注意,此选项需要访问数据库服务器(而SQL Loader在您自己的PC上处理文件)