Oracle Apex 5 Создание файлового браузера - PullRequest
0 голосов
/ 18 мая 2018

Я использую APEX 5 впервые и у меня возникают проблемы при попытке вставить элементы в мою таблицу BLOB-объектов.

Я искал много руководств по созданию типа хранилища File Browser для столбцов BLOB, что позволяет мне добавлять MIME_TYPE, FILENAME, CHARSET и т. Д. В мою таблицу.Я пытаюсь создать функцию загрузки и выгрузки.

Но одна вещь, которая по-настоящему сбивает с толку, - это создание процессов DML, я не мог понять, откуда они получают элемент первичного ключа, я несколько понимаю, что первичный ключ DMLстолбец должен быть первичным ключом моей таблицы? Ошибки продолжают появляться, когда я пытаюсь загрузить.: https://i.stack.imgur.com/pj0G0.png

Буду признателен за любую помощь или советы!

Ниже мой стол для хранения больших двоичных объектов

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 голосов
/ 18 мая 2018

Вам понадобится элемент на вашей странице для хранения поля id.Ваш первый процесс заполнит его.Я предполагаю, что у вас есть последовательность?

  1. Создать скрытый элемент, я назову его P1_ID.
  2. Ваш первый процесс заполнит его, если он пуст,Создайте процесс на шаге обработки с телом:

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

  3. Ваш процесс DML должен запускаться после этого шага, поэтому перетащитепри необходимости измените их или измените последовательность.

  4. Теперь установите значение элемента первичного ключа равным P1_ID в процессе DML.
...