Oracle Apex - 我应该使用 Empty_BLOB() 还是 null?

Kat*_*eed 4 oracle oracle-apex oracle-apex-5 oracle-apex-5.1

我目前使用的是 Oracle Apex 5.1.2。

我在数据库中创建了一个表,其中包含一个可以保存 BLOB 数据类型的列、一个文件名列和一个 MIME 类型列。

在我的 APEX 应用程序中,我有一个文件浏览页面项。此页面项的目的是允许最终用户将文件附加到页面。这部分工作完美 - 用户可以使用该项目浏览文件并将其附加到页面,然后下载该文件以查看它。

问题:我希望最终用户能够在需要时删除附件,并且如果他们愿意,可以在其位置附加另一个文件。我的想法是创建一个按钮,并在按钮的设置中将操作设置为“提交页面”,将数据库操作设置为 SQL 更新操作。然后,我将创建一个 PL/SQL 代码类型的页面进程,并在设置中设置服务器端条件,以便按下我创建的按钮时发生该进程。在该过程的 PL/SQL 代码部分,根据我所做的研究,我有以下两个选项之一:

UPDATE table_name
SET blob_column = EMPTY_BLOB()
WHERE my_id = id
Run Code Online (Sandbox Code Playgroud)

或者:

UPDATE table_name
SET blob_column = null
WHERE my_id = id
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这两个选项并且它们都有效,但我不知道哪个选项更适合我想要实现的目标。我试图研究这个问题,但不幸的是我找不到我正在寻找的确切答案。有人有什么建议吗?

先感谢您。

kfi*_*ity 5

选择是一个见仁见智的问题,因为这两个选项都会删除以前的附件。

我认为大多数人会习惯blob_column = null表示“无附件”,而blob_column = empty_blob()表示“附加空白文件”。所以我建议使用null,但正如你所说,无论哪种方式都可以正常工作。