Oracle Apex表单页面加载时动态加载Blob图片问题求助
APEX动态加载Blob图片不更新问题
问题背景
- 系统包含两张关联表:
PEOPLE_INFO(存储人员信息,字段含full_name、photo_blob),PEOPLE_QUOTE(存储人员语录,通过外键关联PEOPLE_INFO) - 需求:基于
PEOPLE_QUOTE搭建语录录入/更新表单,同时在表单中展示对应人员的photo_blob图片 - 操作尝试:创建页面加载时触发的动态操作,执行SQL语句
SELECT photo_blob FROM people_info WHERE people_id = :P1_PEOPLE_ID获取Blob数据,设置到图片显示项后刷新该项,但图片始终无变化 - 环境:APEX版本20.2.0.00.20
排查方向
- 图片项配置检查:确认图片显示项是Blob专用类型,而非普通文本项。若用URL方式展示,需确保正确配置Blob列、表名,或使用APEX内置函数生成可访问URL
- 参数时机验证:页面加载时
P1_PEOPLE_ID可能尚未赋值(比如新建语录场景),导致SQL无返回结果。建议将动态操作触发条件改为P1_PEOPLE_ID值变化时,而非仅页面加载 - 浏览器缓存处理:浏览器会缓存旧图片,可在图片URL后追加随机参数(如
?v=&APP_SESSION.),强制重新请求资源 - 动态操作动作修正:APEX中不建议直接赋值Blob数据给图片项,更可靠的方式是用
SELECT APEX_UTIL.GET_BLOB_FILE_SRC('P1_PHOTO', PEOPLE_ID) FROM PEOPLE_INFO WHERE PEOPLE_ID = :P1_PEOPLE_ID生成图片URL,再设置到图片项的src属性 - 权限与数据验证:检查当前用户是否有
PEOPLE_INFO表的查询权限,单独执行SQL语句确认是否能返回有效Blob数据
内容的提问来源于stack exchange,提问作者AHamza
相关产品推荐
相关产品推荐

