Aloha,

Je souhaite pouvoir lister les fichiers jpg, png et gif, présents dans une arborescence afin de comparaison avec les valeurs d'un champ de plusieurs tables de ma base de données.

J'ai lu plusieurs article sur cette question puis suis tombé sur deux plus intéressants :
http://www.oracle-developer.net/display.php?id=513
et http://www.oracle.com/technetwork/is...da-312277.html

Aussi ai-je testé ceci, connecté en admin :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
 
CREATE DIRECTORY xt_dir AS '\\Srvwebsig\apic47data\eau\multimedia';
CREATE DIRECTORY bin_dir AS '\\Srvwebsig\apic47data\eau\multimedia';
 
/*GESTION DES DROITS*/
 
GRANT READ, WRITE ON DIRECTORY xt_dir TO GDU;
GRANT READ, WRITE ON DIRECTORY bin_dir TO GDU;
 
/*CREATION D'UNE TABLE EXTERNE*/
 
CREATE TABLE fichiers_xt
  (date_fichier VARCHAR2(50)
  , heure_fichier VARCHAR2(50)
  , taille_fichier VARCHAR2(50)
  , nom_fichier VARCHAR2(255)
  )
  ORGANIZATION EXTERNAL
  (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY xt_dir
    ACCESS PARAMETERS
    (
      RECORDS DELIMITED BY NEWLINE
      LOAD WHEN taille_fichier != '<DIR>'
      PREPROCESSOR bin_dir: 'lister_fichier.bat'
      FIELDS TERMINATED BY WHITESPACE
    )
    LOCATION ('test_liste.txt')
  )
  REJECT LIMIT UNLIMITED;
Mon fichier lister_fichier.bat contient les lignes suivantes :

Mais lorsque je fais un select sur ma table externe, j'ai ceci comme erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
ERREUR Ó la ligne 1 :
ORA-29913: erreur d'exÚcution de l'appel ODCIEXTTABLEOPEN
ORA-29400: erreur de cartouche de donnÚes
KUP-00554: error encountered while parsing access parameters
KUP-01005: syntax error: found "identifier": expecting one of: "and, badfile,
byteordermark, characterset, column, data, delimited, discardfile,
disable_directory_link_check, exit, fields, fixed, load, logfile, language,
not, nodiscardfile, nobadfile, nologfile, date_cache, or, processing, readsize,
string, skip,"
KUP-01008: the bad identifier was: PREPROCESSOR
KUP-01007: at line 3 column 7
ORA-06512: Ó "SYS.ORACLE_LOADER", ligne 19
Je me pose donc les questions suivantes :
- pourquoi ces erreurs ?
- un chemin en '\\srvwesbig\...' est-il compatible avec un DIRECTORY ?
- peut-on lister les fichiers d'une arborescence présente dans un serveur windows différente du serveur UNIX sur lequel la base Oracle est installée ?
- est-ce possible de créer des vues construites sur un select de la table fichiers_xt avec en paramètre le nom de la racine de l'arborescence afin de "monitorer" plusieurs arborescences ?

Merci d'avance, et bonne année 2013, les oracles la prédisent chouette !

PS. Je ne savais pas s'il fallait déposer cette question dans la section administration.