【问题标题】:report error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small APEX报错:ORA-06502: PL/SQL: numeric or value error: string buffer too small APEX
【发布时间】:2021-06-01 12:16:50
【问题描述】:

我收到此错误报告错误: 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 列或更少,它就可以正常工作。

任何帮助!

【问题讨论】:

    标签: oracle plsql oracle-apex oracle-apex-5.1 plsql-package


    【解决方案1】:

    据我所知,你不能在达到极限时做到这一点。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多