Преобразование изображения blob в PUBLIC.ORDIMAGE в plsql

Когда я пытаюсь преобразовать изображение blob в PUBLIC.ORDIMAGE в plsql, я получаю сообщение об ошибке

ORA-06512 ORDSYS.ORDIMAGE

insert into image(image) values (ORDSYS.ORDImage(blob_image));

Я также пытаюсь использовать функцию для изменения размера blob, но получаю ошибку ниже:

create or replace FUNCTION resize_img (p_ID  varchar)
   RETURN BLOB
IS
   vImageData     BLOB;
   vSizedImage BLOB;

BEGIN
  select blob_img into vImageData  from my_table where ID = p_ID;
  DBMS_Lob.createTemporary(vSizedImage, FALSE, DBMS_LOB.CALL);
  ORDSYS.OrdImage.processCopy(vImageData, 'maxScale=75 75', vSizedImage);
  return vSizedImage;

END resize_img;

Когда я вызываю функцию, я получаю ошибку:

ORA-06510: PL / SQL: необработанное определяемое пользователем исключение
ORA-06512: в «ORDSYS.ORDIMAGE», строка 456
ORA-06512: в «MYSCHEMA.RESIZE_IMG», строка 14,
06510. 00000 - «PL / SQL: необработанное определяемое пользователем исключение»
* Причина: определяемое пользователем исключение было вызвано кодом PL / SQL, но не обработано.
* Действие: устраните проблему, вызывающую исключение, или выполните запись обработчик исключений для этого условия. Или вам может потребоваться связаться с администратором вашего приложения или администратором баз данных.

Любое решение?


person Pointer    schedule 14.08.2019    source источник
comment
Похоже, эта функция взята из этой ветки dba.se. Если да, то стоит иметь в виду, что вопрос касался Oracle 11gR2. Я вижу, вы пометили свой вопрос с помощью [oracle10g] и [oracle11g]. Какой из них вы на самом деле используете?   -  person APC    schedule 14.08.2019
comment
@APC Tnx для воспроизведения, я использую Oracle Database 19c, но этот тег здесь не отображается.   -  person Pointer    schedule 14.08.2019
comment
Для справки в будущем лучше указать, какую версию вы используете, в теле вопроса, а не использовать вводящие в заблуждение теги.   -  person APC    schedule 14.08.2019


Ответы (1)


OrdImage является частью Oracle Multimedia, , который устарел в 18c и удален в 19c.

В качестве альтернативы обработке и преобразованию изображений Oracle рекомендует хранить мультимедийный контент в больших объектах SecureFiles и использовать сторонние продукты, такие как Piction. Компонент ORDIM остается в реестре и имеет статус VALID. Объекты и пакеты Oracle Multimedia остаются в базе данных. Однако эти объекты и пакеты больше не работают и вызывают исключения при попытке их использования. Отказ Oracle Multimedia не влияет на Oracle Locator.

person kfinity    schedule 14.08.2019
comment
Tnx для ответа, есть ли у вас простой пример использования SecureFiles LOBs и Piction? Или другое решение для изменения размера изображения blob. - person Pointer; 14.08.2019