【问题标题】:Convert blob image to PUBLIC.ORDIMAGE in plsql在plsql中将blob图像转换为PUBLIC.ORDIMAGE
【发布时间】:2019-08-15 02:11:19
【问题描述】:

当我尝试在 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。

有什么办法吗?

【问题讨论】:

  • 看起来那个函数来自from this dba.se thread。如果是这样,请记住问题是针对 Oracle 11gR2 的。我看到你用[oracle10g] 和[oracle11g] 标记了你的问题。你真正使用的是哪一个?
  • @APC Tnx 用于回放,我使用 Oracle Database 19c 但此标记在这里不可见。
  • 为了将来参考,最好在问题正文中说明您使用的版本,而不是使用误导性标签。

标签: oracle plsql oracle-sqldeveloper oracle19c


【解决方案1】:

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

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

【讨论】:

  • Tnx 回答,你有任何简单的例子如何使用 SecureFiles LOBs 和 Piction?或其他调整 blob 图像大小的解决方案。
猜你喜欢
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2012-12-29
  • 1970-01-01
相关资源
最近更新 更多