Voici comment procèder:
1- Créer un repertoire sur ton disque, par exemple C:\dirOracle
2- Tu crées un repertoire (user SYS ou SYSTEM) dans la bd et tu l'associes au repertoire que tu as crée sur ton disque:
CREATE DIRECTORY dirOracle AS 'C:\dirOracle'
3- Tu attribues les droits sur le repertoire
GRANT READ, WRITE ON DIRECTORY dirOracle TO PUBLIC
4- Voici une procedure pour tester (Comme l'a précisé PLAINER tu dois avoir les droits sur le package UTL_FILE):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
CREATE OR REPLACE PROCEDURE exist (dirName VARCHAR2, fileName VARCHAR2)
IS
fileIN UTL_FILE.FILE_TYPE;
BEGIN
BEGIN
fileIN := UTL_FILE.FOPEN(dirName, fileName, 'R', 32764);
DBMS_OUTPUT.PUT_LINE('LE FICHIER <' || fileName || '> a été ouvert.');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -29280 THEN
DBMS_OUTPUT.PUT_LINE('LE REPERTOIRE SPECIFIE <' ||
dirName|| '> ''EXISTE PAS');
DBMS_OUTPUT.PUT_LINE(SQLERRM);
ELSIF SQLCODE = -29283 THEN
DBMS_OUTPUT.PUT_LINE('LE FICHIER SPECIFIE <' ||
fileName|| '> ''EXISTE PAS');
DBMS_OUTPUT.PUT_LINE(SQLERRM);
ELSE
DBMS_OUTPUT.PUT_LINE('ERREUR:' || SQLERRM);
END IF;
END;
UTL_FILE.FCLOSE(filein);
END; |
5- Tu peux appeler ta procedure:
1 2 3 4
|
begin
exist('DIRORACLE','salut.txt');
end; |
Fais bien attention, le nom du repertoire crée sous oracle doit être en MAJUSCULE quand tu appelles la procedure.
Tiens nous au courant,
Partager