«несуществующий каталог или файл для операции FILEOPEN» при генерации подписи изображения в oracle 11g? - PullRequest
0 голосов
/ 12 декабря 2018

После создания каталога для медиа-элементов в «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

Я тратил много времени на эту проблему и не могу найти решение.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 12 декабря 2018
ORDSYS.ORDImage.init('FILE', 'FILE_DIR','tess.jpg')

Вы должны указать только имя каталога оракула, на которое вы создали ссылку, для фактического пути к папке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...