Преобразование изображения 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.