You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Apex如何获取表中Blob存储图片的访问URL?

在Oracle APEX中展示Blob图片并生成img可用的URL

核心解决方案:使用APEX内置函数APEX_UTIL.GET_BLOB_FILE_SRC

这个函数可以直接从数据库Blob字段生成可作为img标签src属性的URL,无需依赖静态应用文件,完美适配用户上传场景。


1. 修改报表查询语句

将你原有的查询替换为以下语句,用APEX_UTIL.GET_BLOB_FILE_SRC生成图片链接:

select
  id,
  APEX_UTIL.GET_BLOB_FILE_SRC(
    p_content_type => MIMETYPE_DOCUMENT,
    p_blob => BLOB_DOCUMENT,
    p_filename => IMAGE_NAME,
    p_inline => 'YES'
  ) as IMAGE_URL,
  MIMETYPE_DOCUMENT,
  IMAGE_NAME
from my_table

参数说明:

  • p_content_type:对应Blob的MIME类型(比如image/jpeg)
  • p_blob:存储图片的Blob字段
  • p_filename:图片文件名(用于下载时的默认名称)
  • p_inline:设为YES确保图片直接在页面显示,而非触发下载

2. 配置经典报表列属性

  1. 编辑经典报表的列设置,找到IMAGE_URL列
  2. 将列的Display Type设置为「HTML Expression」
  3. 在HTML Expression中填入:
    <img src="#IMAGE_URL#" alt="#IMAGE_NAME#" style="max-width: 200px; max-height: 200px;">
    
    (可根据需求调整max-width/max-height控制图片大小)

或者,也可以直接选择Display Type为「Image」,然后在Image Source中选择IMAGE_URL列,Alt Text选择IMAGE_NAME列,APEX会自动生成img标签。


3. 交互式报表的配置(若切换使用)

操作逻辑和经典报表一致:

  1. 进入交互式报表的列属性编辑界面
  2. 找到IMAGE_URL列,设置Display Type为「Image」
  3. 分别指定Image Source Column为IMAGE_URL,Alternative Text Column为IMAGE_NAME
  4. 若需要自定义样式,也可改用「HTML Expression」方式,写法和经典报表相同

权限说明

该方案无需静态应用文件的写入权限,只要报表所在的APEX应用有读取my_table表的权限,且用户能访问该报表页面,即可正常显示图片。

内容的提问来源于stack exchange,提问作者JB999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:42:54