此链接说明如何将表中BLOB中的图像显示为显示图像项http://www.apexninjas.com/blog/2011/09/uploading-and-displaying-images-in-apex/
它建议编写以下代码(代码将BLOB数据转换为HTML):
create or replace PROCEDURE image(image_id IN NUMBER)
AS
l_mime VARCHAR2 (255);
l_length NUMBER;
l_file_name VARCHAR2 (2000);
lob_loc BLOB;
BEGIN
SELECT i.MIME_TYPE, i.CONTENT, DBMS_LOB.getlength (i.CONTENT), i.FILENAME
INTO l_mime, lob_loc, l_length, l_file_name
FROM EMP_IMAGE i
WHERE i.ID = image_id;
OWA_UTIL.mime_header (NVL (l_mime, 'application/octet'), FALSE);
htp.p('Content-length: ' || l_length);
htp.p('Content-Disposition: filename="' || SUBSTR(l_file_name, INSTR(l_file_name, '/') + 1) || '"');
owa_util.http_header_close;
wpg_docload.download_file(Lob_loc);
END image;我是Oracle APEX 5的新手,我不知道应该在界面的什么地方编写代码
我的UI就像这样的https://i.imgur.com/7xCRO7U.png
发布于 2017-10-20 01:54:51
他们告诉您在数据库中创建该过程;它不是一个APEX组件。我认为我不会建议他们打开一个安全漏洞来允许直接执行自定义本地过程。这不再是必要的;APEX自2011年以来已经发生了很大的变化。
在左侧,单击名为" Image“的显示图像项目。然后在右侧的"Settings“下,将"Based On”更改为由语句返回的SQL列,然后在其中放置一个将返回所需列的查询。
您将需要一个主键来查找正确的行;这里假设您使用的是FILE_NAME页面项,但更好的选择可能是使用一个隐藏的页面项来保存图像表中的主键,对于"id“列可以称为"P1_ID”,并在页面过程中将RETURNING id INTO :P1_ID添加到INSERT语句的末尾。然后,您的"IMAGE“页面项目查询将如下所示:
SELECT i.CONTENT
FROM IMAGES i
WHERE i.ID = :P1_ID;https://stackoverflow.com/questions/46833783
复制相似问题