Преобразование изображения 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, но не обработано.
* Действие: устраните проблему, вызвавшую исключение, или напишите обработчик исключения для этого условия. Или вам может потребоваться связаться с администратором вашего приложения или администратором базы данных.

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

1 ответ

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

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

Другие вопросы по тегам