Oracle Apex 5文件浏览器Blob创建

时间:2018-05-17 22:59:44

标签: oracle oracle-sqldeveloper oracle-apex oracle-apex-5 oracle-apex-5.1

我第一次使用APEX 5并且在尝试将项目插入我的blob表时遇到问题。

我搜索了很多关于创建文件浏览的存储类型到BLOB列的指南,这允许我将MIME_TYPE,FILENAME和CHARSET等添加到我的表中。我正在尝试创建上传和下载功能。

但有一件事真的令人困惑的是创建DML流程,我无法理解他们从哪里获取主键项目,我有点理解DML主键列应该是我的表格' s主键?我尝试上传时出现错误。 :https://i.stack.imgur.com/pj0G0.png

非常感谢任何形式的帮助或提示!

下面是我存储blob的表

CREATE TABLE  "MATERIALS" 
   (    "ID" NUMBER NOT NULL ENABLE, 
    "MATERIAL_NAME" VARCHAR2(400), 
    "FILENAME" VARCHAR2(350), 
    "M_COURSE_ID" VARCHAR2(68), 
    "MIME_TYPE" VARCHAR2(255), 
    "DOC_SIZE" NUMBER, 
    "CHARSET" VARCHAR2(128), 
    "LAST_UPDATE_DATE" DATE, 
    "CONTENT" BLOB, 
     CONSTRAINT "MATERIALS_PK" PRIMARY KEY ("ID")
  USING INDEX  ENABLE
   )   NO INMEMORY

1 个答案:

答案 0 :(得分:0)

您需要在页面上显示一个项目才能保留id字段。您的第一个流程将填充它。我猜你有序列吗?

  1. 创建隐藏项目,我将其称为P1_ID
  2. 如果第一个进程为空,则会填充它。使用正文:

    在Processing步骤创建一个流程

    apex_util.set_session_state( 'P1_ID', mysequence.NEXTVAL );

  3. 您的DML流程必须在此步骤后运行,因此请拖动它们或在必要时更改序列。

  4. 现在,在DML流程中将主键项值设置为P1_ID。