是否可以为 Left Joined 经典报告创建下载 link?

Is it possible to create download link for Left Joined classic report?

我在页面中有经典报告,其中有以下 SQL 查询:

SELECT CELLS.ID, CELLS.NAME, CELLS.NUM, CELLS.AC_ID, AC.SERIAL,AC.FILE_NAME, AC.FILE_DATA
FROM CELLS 
LEFT JOIN AC
ON CELLS.AC_ID = AC.ID
WHERE CELLS.AC_ID IS NOT NULL
ORDER BY CELLS.NUM

我想为 AC.FILE_DATA 下载 link,它是 BLOB。因此,在属性 FILE_DATA 列中,我设置了以下内容:

Type: Download BLOB
Table Name: AC
BLOB Column: FILE_DATA
Primary Key Column 1: ID

然后页面在经典报告区域的地方产生错误:

Error: ORA-06502: PL/SQL: numeric or value error: character to number conversion error

查看调试日志显示了更多信息:

Exception in "AC Region": Sqlerrm: ORA-06502: PL/SQL: numeric or value error: character to number conversion error Backtrace: ORA-06512: at "APEX_050100.WWV_RENDER_REPORT3", line 7965

左连接中没有AC.FILE_DATA也不例外。那么在报表查询中使用联接时,我真的可以拥有 blob 下载列吗?

据我所知,它与(左)连接无关,而是您创建 下载 link 的方式。它应该 NOT 是 BLOB 列名,但是这个:

dbms_lob.getlength(ac.file_data) download

或者,应用于您的查询,

SELECT CELLS.ID, 
       CELLS.NAME, 
       CELLS.NUM, 
       CELLS.AC_ID, 
       AC.SERIAL,
       AC.FILE_NAME, 
       --
       dbms_lob.getlength(AC.FILE_DATA) download  --> this
FROM CELLS 
LEFT JOIN AC
ON CELLS.AC_ID = AC.ID
WHERE CELLS.AC_ID IS NOT NULL
ORDER BY CELLS.NUM

"Download"栏目设置:

  • 类型:下载 BLOB
  • Table姓名:AC
  • BLOB 列:FILE_DATA
  • 主键第 1 列:ID

保存,运行 - 应该没问题。