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

时间:2019-08-14 12:04:20

标签: 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。

有解决方案吗?

1 个答案:

答案 0 :(得分:0)

OrdImage是Oracle多媒体which was deprecated in 18c and removed in 19c的一部分。

  

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