1

当我尝试在 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:未处理的用户-defined exception"
*原因:PL/SQL 代码引发了用户定义的异常,但未处理。
*行动:修复导致异常的问题或为此情况编写异常处理程序。或者您可能需要联系您的应用程序管理员或 DBA。

有什么解决办法吗?

4

1 回答 1

1

OrdImage是 Oracle Multimedia 的一部分,在 18c 中已弃用并在 19c 中删除

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

于 2019-08-14T18:11:19.667 回答