Oracle
 sql >> Base de données >  >> RDS >> Oracle

problème pour trouver la liste des fichiers dans le répertoire

J'ai fait quelque chose dans ce sens :

Créez un répertoire Oracle pour le répertoire que vous souhaitez répertorier :

create or replace directory YOURDIR
  as '\path\to\your\directory';

Construire une table temporaire :

create global temporary table DIR_LIST
(
  FILENAME VARCHAR2(255),
)
on commit preserve rows;
grant select, insert, update, delete on DIR_LIST to PUBLIC;

Vous aurez besoin d'une procédure stockée Java :

create or replace and compile java source named dirlist as
import java.io.*;
  import java.sql.*;
  import java.text.*;

  public class DirList
  {
  public static void getList(String directory)
                     throws SQLException
  {
      File dir = new File( directory );
      File[] files = dir.listFiles();
      File theFile;

      for(int i = 0; i < files.length; i++)
      {
          theFile = files[i];
          #sql { INSERT INTO DIR_LIST (FILENAME)
                 VALUES (:theName };
      }
  }

  }

Et une procédure appelable PL/SQL pour invoquer le java :

CREATE OR REPLACE PROCEDURE get_dir_list(pi_directory IN VARCHAR2)
AS LANGUAGE JAVA
name 'DirList.getList(java.lang.String)';

Enfin, l'appel de la procédure get_dir_list à l'intérieur de votre formulaire remplira la table avec les fichiers de votre répertoire, que vous pourrez ensuite lire dans votre bloc de formulaire.

Le code java est sorti tout droit d'un livre de Tom Kyte (je ne me souviens plus lequel).

MODIFIER :

En fait, tout le code est à peu près extrait de ce fil AskTom.