Les directories : accéder à des ressources systèmes

Un directory est un objet oracle permettant d'accéder à des ressources du systèmes d'exploitation (quel qu'il soit) afin de procéder à des opérations de lectures ou d'écritures de fichiers par exemple.

vues du dictionnaire concernées :
- {all/dba}_directories

GRANT associés :
ALL_TAB_PRIVS
GRANT {CREATE/DROP} ANY DIRECTORY;
GRANT READ ON DIRECTORY mon_dir TO PUBLIC;

Exemple :
$ mkdir /tmp/dir_oracle

$ sqlplus / as sysdba

SQL> grant create any directory to userex;

Grant succeeded.

SQL> conn USEREX/PASSEX
connected

SQL> create or replace directory rep_log as '/tmp/dir_oracle';

Directory created.


Il est ensuite possible de créer un fichier pour écrire des infos et communiquer avec l'extérieur (le système d'exploitation en premier lieu) :



SQL> declare
1 f utl_file.file_type;
2 begin
3 f := utl_file.fopen
4 ('rep_log', 'communication.txt', 'w');
5 utl_file.put_line(f, 'Voici du texte');
6 utl_file.put_line(f, 'provenant de Oracle');
7 utl_file.fclose(f);
8 end;
9 /

Anonymous block completed

SQL> exit

$ cat /tmp/dir_oracle/communication.txt
Voici du texte
provenant de Oracle


Attention cependant car le texte n'est pas écrit au fur et à mesure (il faut utiliser UTL_FILE.FFLUSH) et peut provoquer une erreur indiquant un buffer rempli.




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories