Bonjour,
j'essaie depuis quelques temps de faire une fonction qui me permettrait d'ajouter règulièrement des données lues en base dans un fichier.
J'ai fait plusieurs essais, mais je reviens toujours au même point, l'erreur :
ORA-29283: opération non valide sur le fichier
J'utilise Oracle10G
J'ai les droits sur ce fichier au niveau de windows.
J'ai créé un DIRECTORY :
1 2 3
| CREATE OR REPLACE DIRECTORY CHEMIN AS 'D:/monrep/fichier/'
GRANT READ, WRITE ON CHEMIN TO PUBLIC;
GRANT READ, WRITE ON CHEMIN TO MONUSER; |
Je me connecte à la base en tant que MONUSER
Voici le code que j'exécute :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| DECLARE
nom_fichier VARCHAR2(30) := 'test.csv';
nom_chemin VARCHAR2(30) := 'CHEMIN';
fich UTL_FILE.FILE_TYPE;
EXP EXCEPTION ;
BEGIN
fich := UTL_FILE.FOPEN (nom_chemin,nom_fichier,'R',1000);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM || ' [' || nom_chemin || '] -> ' || nom_fichier);
RAISE EXP ;
END; |
Je suppose qu'il faut attribuer certains droits à Oracle sur le fichier ou le dossier utilisé, mais je ne sais pas exactement comment procéder.
Si quelqu'un à déjà eu ce problème, et peut m'aider, merci d'avance.
Partager