在plsql中将BLOB图像转换为PUBLIC.ORDIMAGE

人气:652 发布:2022-10-16 标签: oracle plsql oracle-sqldeveloper oracle19c

问题描述

在plsql中尝试将BLOB图像转换为PUBLIC.ORDIMAGE时出现错误

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代码引发自定义异常,但未处理。 *操作:解决导致异常的问题或针对此情况编写异常处理程序。或者,您可能需要联系您的应用程序管理员或DBA。

是否有任何解决方案?

推荐答案

OrdImage是Oracle Multimedia的一部分,which was deprecated in 18c and removed in 19c。

作为图像处理和转换的替代方案,Oracle建议您将多媒体内容存储在SecureFiles LOB中,并使用第三方产品,如Piction。ORDIM组件保留在注册表中,并且仍然具有有效状态。Oracle多媒体对象和包保留在数据库中。但是,这些对象和包不再起作用,并在尝试使用它们时引发异常。Oracle Locator不受Oracle Multimedia取消支持的影响。

587