首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我把这段代码放在Oracle APEX界面的什么地方?

我把这段代码放在Oracle APEX界面的什么地方?
EN

Stack Overflow用户
提问于 2017-10-19 23:41:34
回答 1查看 55关注 0票数 0

此链接说明如何将表中BLOB中的图像显示为显示图像项http://www.apexninjas.com/blog/2011/09/uploading-and-displaying-images-in-apex/

它建议编写以下代码(代码将BLOB数据转换为HTML):

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 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“页面项目查询将如下所示:

代码语言:javascript
复制
SELECT i.CONTENT
   FROM IMAGES i
   WHERE i.ID = :P1_ID;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46833783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档