首页 > 解决方案 > ORACLE APEX - 从不同的表中获取下载 BLOB 链接

问题描述

我在从基于表 ORDERS 的报告中下载存储在表 ORDERSIN 中的 blob 时遇到问题。如果我从存储文件的表中创建一个没有问题的报告,我就可以让它工作。

我的报表 SQL

SELECT  j.ID,
        m.ITEMNUMBER||' : '||m.NAME as NAZEV,
        c.CUSTOMERNAME AS ZAKAZNIK,
        dbms_lob.getlength("DOCUMENTS") PDF_OPEN,
        j.EXPEDITIONDATE AS EXPEDICE,
        o.ID AS OBJEDNAVKA,
        j.STATE AS STAV,
        j.AMOUNTEXPEDITED AS EXPEDOVANO,
        j.UNITPRICE AS CENA,
        j.RECIEPT AS DODAK,
        j.ORDEREDAMOUNT AS OBJEDNANO,
        j.INVOICENR
        
FROM JOBS j
LEFT JOIN MASTERITEMS m ON j.MASTERITEM_ID = m.ID
LEFT JOIN CUSTOMERS c ON m.CUSTOMER_ID = c.ID
LEFT JOIN ORDERSIN o ON j.ORDERSIN_ID = o.ID

如果我执行该页面并将列 PDF_OPEN 设置为下载 blob 类型,则它会在报告中正确显示下载链接,但单击是否返回:

    Technical Info (only visible for developers)
is_internal_error: true
apex_error_code: APEX.UNHANDLED_ERROR
ora_sqlcode: 100
ora_sqlerrm: ORA-01403: no data found ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 124 ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 2301 ORA-06512: at line 1 ORA-06512: at "SYS.DBMS_SYS_SQL", line 2120 ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200200", line 679 ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 2262 ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 96 ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 301 ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC", line 340 ORA-06512: at "APEX_200200.WWV_FLOW_DML", line 1922
component.type: APEX_APPLICATION_PAGES
component.id: 100000000034
error_backtrace:
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SYS_SQL", line 2120
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200200", line 679
ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 2262
ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 124
ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 2301
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SYS_SQL", line 2120
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200200", line 679
ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 2262
ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 96
ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC_PLSQL", line 301
ORA-06512: at "APEX_200200.WWV_FLOW_CODE_EXEC", line 340
ORA-06512: at "APEX_200200.WWV_FLOW_DML", line 1922
ORA-06512: at "APEX_200200.WWV_FLOW_DML", line 2475
error_statement:
begin begin select "DOCUMENTS" into wwv_flow.g_dml_blob from "ORDERSIN" where "ID" = :b1; end;
end;

有人可以帮忙吗?我的猜测是没有关于这指的是什么表的信息:dbms_lob.getlength("DOCUMENTS") PDF_OPEN

谢谢雅库布

标签: oracleoracle-apex

解决方案


推荐阅读