PL / SQL中的Oracle ORDImage处理:获取IMG-00710和ORA-01031
时间:2020-03-05 18:59:18 来源:igfitidea点击:
我已将图像加载到新的初始化的Oracle ORDImage对象中,并通过PL / SQL处理它。我可以读取其属性,但不能使用process()方法对其进行处理。
vLocalImage ORDImage := ORDImage.init(); ... vLocalImage.source.localdata := PORTAL.wwdoc_admin.get_document_blob_content(pFile); vLocalImage.setProperties(); ... if vLocalImage.width > lMaxWidth then vLocalImage.process('maxScale 534 401'); end if;
这应按比例缩小图像,并保持宽高比,以使宽度不超过534像素,高度不超过401像素。
但是,我得到以下错误堆栈:
Internal error: ORA-29400: data cartridge error IMG-00710: unable to write to destination image ORA-01031: insufficient privileges
尝试其他操作(例如"旋转90")会产生相同的错误。
解决方案
回答
我们能否显示用于获取l_ordimage的select语句?导致此错误的主要原因似乎是如果select语句中没有" for update",但是目前我无法让中介进行测试。
回答
即使文档指出可以"就地"编辑ORDImage,也无法使它正常工作。
相反,我创建了一个新的ORDImage对象并使用了processCopy:
vNewImage ORDImage; ... vLocalImage.processCopy('maxScale 534 401', vNewImage);