I am currently using Oracle Apex 5.1.2.
I created a table in the database that contains a column that can hold a BLOB data type, a column for filename, and a column for MIME type.
In my APEX application, I have a File Browse page item. The intent for this page item is to allow the end-user to attach a file to the page. This part works perfectly - the user is able to browse for a file using that item and attach it to a page and later download the file in order to view it.
The problem: I want the end-user to be able to delete the attachment if they need to and, if they'd like, attach another file in its place. My idea is to create a button and in the settings for the button set the Action to "Submit Page" and the Database Action to SQL Update Action. Then I will create a page process of type PL/SQL code and set the Server-side Condition in the settings for the process to occur when the button I created is pressed. In the PL/SQL code section of the process, it appears from the research I have done that I have one of two options:
UPDATE table_name
SET blob_column = EMPTY_BLOB()
WHERE my_id = id
OR:
UPDATE table_name
SET blob_column = null
WHERE my_id = id
I have already tried both of these options and they both work, but I don't know which option is better for what I am trying to achieve. I have tried to research this problem, but unfortunately I can't find the exact answer I am looking for. Does anyone have any recommendations?
Thank you in advance.
The choice is a matter of opinion, since both options delete the previous attachment.
I think most people would use blob_column = null
to mean "no attachment", while blob_column = empty_blob()
would mean "blank file attached". So I would recommend using null
, but as you said, it works fine either way.