在“ c:\ work”中为媒体元素创建目录之后 我在sqlplus中声明了目录
> CREATE OR REPLACE DIRECTORY FILE_DIR as 'c:\work';
> GRANT READ ON DIRECTORY FILE_DIR TO anonymous;
我创建了一个类型user_type
TYPE user_type AS OBJECT (
id NUMBER,
name VARCHAR2(20),
lastname VARCHAR2(25),
email VARCHAR2(25),
password VARCHAR2(20),
profile_pic ORDSYS.ORDIMAGE,
profile_pic_sig ORDSYS.ORDImageSignature
)
,然后根据该类型创建表USERR
。
插入数据符合预期
BEGIN
INSERT INTO USERR
VALUES (10,'user','username','somevalidemail','password', ORDSYS.ORDImage.init('FILE', 'C:\work','tess.jpg'),ORDSYS.ORDImageSignature.init());
COMMIT;
END;
/
PL / SQL过程成功完成。
现在,当我尝试生成图像签名时出现问题
DECLARE
t_image ORDSYS.ORDImage;
image_sig ORDSYS.ORDImageSignature;
BEGIN
SELECT Profile_PIC, Profile_PIC_SIG INTO t_image, image_sig
FROM USERR
WHERE ID = 10 FOR UPDATE;
image_sig.generateSignature(t_image);
UPDATE USERR SET Profile_PIC_SIG = image_sig
WHERE ID =10;
END;
/
ERROR
ORA-22285: répertoire ou fichier inexistant pour l'opération FILEOPEN
ORA-06512: à "ORDSYS.ORDIMG_PKG", ligne 1074
ORA-06512: à "ORDSYS.ORDIMAGE", ligne 173
ORA-06512: à "ORDSYS.ORDIMAGESIGNATURE", ligne 85
ORA-06512: à ligne 8
我已经在这个问题上浪费了很多时间,但找不到任何解决方案。 任何帮助将不胜感激。
答案 0 :(得分:0)
ORDSYS.ORDImage.init('FILE', 'FILE_DIR','tess.jpg')
您应该只为实际文件夹路径指定创建参考的oracle目录名称。