Копирование содержимого столбца BLOB-объекта из одной таблицы в другую в Oracle Apex - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время я пытаюсь скопировать содержимое столбца BLOB из одной таблицы в другую в Oracle Apex 5, и, несмотря ни на что, он не копирует данные BLOB, он оставляет все эти поля пустыми и приводит меня в движение. орехи.

Вот PL / SQL, который я использую для выполнения этого процесса.

insert into ATTACHMENTS_AVAIL 
  ("ADDED_FILE", "MIMETYPE", "FILENAME", "CONTRACTOR_ID", "DATE_ADDED", "TYPE") 
select RESUME,
       MIMETYPE,
       FILENAME,
       :P24_CONTRACTOR_ID,
       sysdate,
       'Resume'
from subs 
where pkey = :P24_SUBS_PKEY;

Есть идеи, что мне здесь не хватает?

Вот типы полей.

ADDED_FILE    - BLOB
MIMETYPE      - VARCHAR2
FILENAME      - VARCHAR2
CONTRACTOR_ID - NUMBER
DATE_ADDED    - DATE
TYPE          - VARCHAR2

1 Ответ

0 голосов
/ 29 июня 2018

(...) оставляет все эти поля пустыми

Это означает, что предложение WHERE не выполнено, полностью:

  • либо нет SUBS.PKEY, значение которого равно P24_SUBS_PKEY значению элемента, либо
  • P24_SUBS_PKEY является пустым

Как получилось? Потому что, даже если бы каждое другое значение было NULL, SYSDATE (вы вставляете в DATE_ADDED) и 'Resume' (который входит в столбец TYPE) будут вставлены. Итак, INSERT не удалось, потому что SELECT не удалось, потому что WHERE не работает.

Полагаю, вы проверили, содержит ли таблица SUBS соответствующие значения. Поэтому я предполагаю, что элемент P24_SUBS_PKEY ничего не содержит. Возможно, вы видите значение на экране, но - находится ли оно в состоянии сеанса? Я думаю, нет. Включите отладку и проверьте значения состояния сеансов после завершения процесса.

Сказать, что вы написали процесс , который должен выполнить INSERT - когда этот процесс "запускается"? Самый простой способ, вероятно, когда вы нажимаете кнопку, которая отправляет страницу. И, как только вы отправляете его, значения элементов «сохраняются» в состоянии сеанса. Я предлагаю вам сделать это, просто чтобы убедиться, что это действительно работает. Тогда вы можете улучшить все это, если необходимо.

...