2016-12-10 48 views
2

我正在研究Oracle數據庫應用程序,該應用程序需要爲存儲在IMAGES表中的每個ORDImage生成縮略圖。Oracle根據存儲的ORDImage生成縮略圖

我到目前爲止的步驟是:

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; 

表結構被給出爲: 1

當運行的程序,例如:"create_blob_thumbnail(5);"中,Oracle在管線16 "ORDSYS.ORDImage.processCopy(IMG_ORIGINAL,"返回錯誤說:

"non-existent directory or file for %s operation" 
*Cause: Attempted to access a directory that does not exist, or attempted 
      to access a file in a directory that does not exist. 

你可以看看哪裏出了問題?

回答