Oracle PL/SQL进程将文件上载到不同于apex格式的BLOB列中

Oracle PL/SQL进程将文件上载到不同于apex格式的BLOB列中,oracle,plsql,oracle-apex,oracle-apex-5,Oracle,Plsql,Oracle Apex,Oracle Apex 5,当前有一个请求,要求自动将表单窗口中的数据同时添加到两个表中。我可以用简单的插入函数作为进程来完成这一点,但在我的一生中,我不知道如何使用am insert函数将文件浏览中的附加文件附加到另一个表。blob列始终显示为[不支持的数据类型] 这是我当前的插入代码,让我知道我是个白痴,错过了一些简单的东西 insert into ATTACHMENTS_AVAIL ("ADDED_FILE", "MIMETYPE", "FILENAME", "CONTRACTOR_ID", "DATE_AD

当前有一个请求,要求自动将表单窗口中的数据同时添加到两个表中。我可以用简单的插入函数作为进程来完成这一点,但在我的一生中,我不知道如何使用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是文件浏览表单

再次感谢

插入水滴 insert语句没有获取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_应用程序_文件还有其他列告诉您mime类型等

查看水滴 您正试图在APEX的SQL研讨会中查看BLOB数据。无法显示BLOB(它只显示您找到的“[不支持的数据类型]”),但这并不意味着BLOB数据无效。BLOB可以包含任何内容—MP3格式的音乐、JPEG格式的图片、MP4格式的视频、Microsoft Word文档等。没有任何工具可以“显示”所有这些内容


如果您创建了一个新页面,其中包含一个报告以显示数据,则可以将BLOB列的类型设置为“如果BLOB始终包含图像,则显示图像”,如果BLOB可能包含非图像数据,则设置为“下载BLOB”。

在何处显示为[不支持的数据类型]?这听起来像是您的表查看工具的一个限制。在Oracle Apex中,当我执行查询以查看记录是否已创建时。我确实已经有了一个页面,无法打开附加的文件。在整个应用程序中,我的表中有很多blob列,但我以前从未尝试过通过insert语句插入blob数据,而且它无法正确地传递所附文档。它将数据放入列中,但一旦下载就无法访问或无法打开。工作非常出色。谢谢!Tony,这是可行的,但是apex_应用程序_文件是一个临时空间,有时这些用户几天后返回,文件不再在apex_应用程序_文件中。是否要将存储在表中的文件直接复制到另一个表中?是的,这就是我的答案:将
blob\u内容
apex\u应用程序文件
复制到
附件
表中。您需要在上传文件后立即执行此操作,而不是几天后。如果需要,请使用另一张桌子。