Oracle Apex查询给出错误“;ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小”;

Oracle Apex查询给出错误“;ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小”;,oracle,pivot-table,oracle-apex,Oracle,Pivot Table,Oracle Apex,我在带有RTF布局的oracle apex查询中使用此查询。在sql developer中,此查询工作正常,并返回如屏幕截图所示的记录,但当我将此查询放置在oracle apex查询中并将其与下载按钮关联时,oracle apex给出了错误信息** ORA-06502:PL/SQL:数字或值错误:字符串缓冲区过大 小型oracle apex 这是什么类型的地区?当页面呈现报告或单击下载按钮时,何时会出现错误?“将其与下载按钮关联”是什么意思?您是如何实现下载功能的? WITH pivot_da

我在带有RTF布局的oracle apex查询中使用此查询。在sql developer中,此查询工作正常,并返回如屏幕截图所示的记录,但当我将此查询放置在oracle apex查询中并将其与下载按钮关联时,oracle apex给出了错误信息**

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区过大 小型oracle apex


这是什么类型的地区?当页面呈现报告或单击下载按钮时,何时会出现错误?“将其与下载按钮关联”是什么意思?您是如何实现下载功能的?
WITH pivot_data AS (
SELECT
    BILLING_MONTH,
    billing_month_l,
    comp_name,
    sdiv_code,
    mon_units_billed,
    mon_units_recvd,
    energy
FROM
    (
        SELECT
            to_date(billing_month, 'YYYYMM') billing_month_l,
            c.comp_name,
            sdiv_code,
            round(mon_units_billed / 1000000, 0) mon_units_billed,
            round(mon_units_recvd / 1000000, 0) mon_units_recvd
        FROM
            losses,
            company c
        WHERE formation_identifier = 1
            AND c.comp_code = losses.sdiv_code
        UNION ALL
        SELECT
            to_date(billing_month, 'YYYYMM') billing_month_l,
            'ALL DISCOs' comp_name,
            '99' sdiv_code,
            round(mon_units_billed / 1000000, 0) mon_units_billed,
            round(mon_units_recvd / 1000000, 0) mon_units_recvd
        FROM
            losses
        WHERE 
            formation_identifier = 5
    ) losses_data,
    (
        SELECT
            comp_code,
            to_date(billing_month, 'YYYYMM') billing_month,
            round(energy / 1000000, 0) energy
        FROM
            brs_test.tbl_energy
        UNION ALL
        SELECT
            99 comp_code,
            to_date(billing_month, 'YYYYMM') billing_month,
            round(SUM(energy) / 1000000, 0) energy
        FROM
            brs_test.tbl_energy
        GROUP BY
            billing_month
    ) energy_data
WHERE
    losses_data.sdiv_code = energy_data.comp_code
    AND losses_data.billing_month_l = energy_data.billing_month
) SELECT to_char(BILLING_MONTH,'YYYYMM') BILLING_MONTH,
 SUM(LHR_ENERGY) LHR_ENERGY,SUM(LHR_BILLED) LHR_BILLED,SUM(LHR_RECEIVED) LHR_RECEIVED,
 SUM(GRW_ENERGY) GRW_ENERGY,SUM(GRW_BILLED) GRW_BILLED,SUM(GRW_RECEIVED) GRW_RECEIVED,
 SUM(FBD_ENERGY) FBD_ENERGY,SUM(FBD_BILLED) FBD_BILLED,SUM(FBD_RECEIVED) FBD_RECEIVED,
 SUM(ISD_ENERGY) ISD_ENERGY,SUM(ISD_BILLED) ISD_BILLED,SUM(ISD_RECEIVED) ISD_RECEIVED,
 SUM(MUL_ENERGY) MUL_ENERGY,SUM(MUL_BILLED) MUL_BILLED,SUM(MUL_RECEIVED) MUL_RECEIVED,
 SUM(PSH_ENERGY) PSH_ENERGY,SUM(PSH_BILLED) PSH_BILLED,SUM(PSH_RECEIVED) PSH_RECEIVED,
 SUM(HYD_ENERGY) HYD_ENERGY,SUM(HYD_BILLED) HYD_BILLED,SUM(HYD_RECEIVED) HYD_RECEIVED,
 SUM(SUK_ENERGY) SUK_ENERGY,SUM(SUK_BILLED) SUK_BILLED,SUM(SUK_RECEIVED) SUK_RECEIVED,
 SUM(QTA_ENERGY) QTA_ENERGY,SUM(QTA_BILLED) QTA_BILLED,SUM(QTA_RECEIVED) QTA_RECEIVED,
 SUM(TSC_ENERGY) TSC_ENERGY,SUM(TSC_BILLED) TSC_BILLED,SUM(TSC_RECEIVED) TSC_RECEIVED,
 SUM(AD_ENERGY) AD_ENERGY,SUM(AD_BILLED) AD_BILLED,SUM(AD_RECEIVED) AD_RECEIVED 
FROM
pivot_data PIVOT (
    SUM ( energy )
AS energy, SUM ( mon_units_billed ) billed, SUM ( mon_units_recvd ) AS received
    FOR SDIV_CODE
    IN ( 11 AS LHR, 12 AS GRW, 13 AS FBD, 14 AS ISD, 15 AS MUL, 26 AS PSH, 37 AS HYD, 38 AS SUK, 48 AS QTA,
    59 AS TSC,99 AD )
)
GROUP BY   BILLING_MONTH ORDER BY billing_month DESC