我正在开发一个Oracle数据库应用程序,它需要为IMAGES表中存储的每个ORDImage生成一个缩略图。
到目前为止我的程序是:
LOOKAHEAD
表结构如下: 1
当我运行该过程时,例如:create or replace PROCEDURE create_blob_thumbnail (p_image_id IN INTEGER) IS
IMG_ORIGINAL ORDSYS.ORDImage;
THUMBNAIL ORDSYS.ORDImage;
BLOB_THUMBNAIL BLOB;
BEGIN
SELECT IMAGE
INTO IMG_ORIGINAL
FROM IMAGES
WHERE PRODUCT_ID = p_image_id FOR UPDATE;
THUMBNAIL := ORDSYS.ORDImage.Init();
dbms_lob.createTemporary(THUMBNAIL.source.localData, true);
ORDSYS.ORDImage.processCopy(IMG_ORIGINAL,
'maxscale=128 128',
THUMBNAIL);
-- extract BLOB from OrdImage
UPDATE IMAGES
SET THUMBNAIL = THUMBNAIL.source.localData
WHERE PRODUCT_ID = p_image_id;
dbms_lob.freeTemporary(THUMBNAIL.source.localData);
COMMIT;
END;
,Oracle在第16行"create_blob_thumbnail(5);"
返回错误说:
"ORDSYS.ORDImage.processCopy(IMG_ORIGINAL,"
请你看看哪里出了问题?
答案 0 :(得分:2)
本说明:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28414/ch_imgref.htm
建议必须使用相关权限创建Oracle DIRECTORY才能使其正常工作。
然而,如果你搜索单词" thumbnail"你会"例3"我认为你做了什么,即为数据库中的现有图像创建缩略图,并用缩略图更新另一列。