PL / SQL将文件上传到与顶点表单不同的BLOB列的过程

时间:2017-09-06 15:11:25

标签: oracle plsql oracle-apex oracle-apex-5

目前有一个请求将表单窗口中的数据自动添加到两个表中。我能够通过简单的插入函数作为进程来实现这一点,但是对于我的生活,我无法弄清楚如何使用am insert函数将文件中的附加文件浏览以附加到其他表。 blob列始终显示为[不支持的数据类型]。

这是我目前的插入代码,让我知道我是个白痴,并且遗漏了一些简单的东西。

    insert into ATTACHMENTS_AVAIL ("ADDED_FILE", "MIMETYPE", "FILENAME", "CONTRACTOR_ID", "DATE_ADDED", "TYPE") 
values 
(:P159_RESUME,
:P159_MIMETYPE,
:P159_FILENAME,
:P159_CONTRACTOR_ID,
sysdate,
'Resume');

ADDED_FILE是blob列,并且:P159_RESUME是文件浏览表单。

再次感谢!

1 个答案:

答案 0 :(得分:1)

插入BLOB

您的插入语句不是获取BLOB数据,而是获取APEX文件ID。你需要做更多这样的事情:

insert into ATTACHMENTS_AVAIL ("ADDED_FILE", "MIMETYPE", "FILENAME", "CONTRACTOR_ID", "DATE_ADDED", "TYPE") 
select blob_content,
       :P159_MIMETYPE,
       :P159_FILENAME,
       :P159_CONTRACTOR_ID,
       sysdate,
       'Resume'
from apex_application_files where name = :P159_RESUME;

实际上,apex_application_files还有其他列可以告诉你mime类型等。

查看BLOB

您正在尝试在APEX的SQL Workshop中查看BLOB数据。这不能显示BLOB(它只显示" [不支持的数据类型]"如您所见),但这并不意味着BLOB数据无效。 BLOB可以包含任何内容 - MP3格式的音乐,JPEG格式的图片,MP4格式的视频,Microsoft Word文档等。没有工具可以显示"所有这些。

如果您创建一个包含报告的新页面以显示数据,则可以将BLOB列的类型设置为显示图像(如果BLOB始终包含图像),或者如果BLOB列可能包含非BLOB列,则将其设置为显示图像 - 图像数据。