sql >> Database >  >> RDS >> Oracle

probleem bij het vinden van een lijst met bestanden in de map

Ik deed iets in de trant van:

Maak een Oracle-directory aan voor de directory die u wilt weergeven:

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

Bouw een tijdelijke tafel:

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

Je hebt een in Java opgeslagen procedure nodig:

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 };
      }
  }

  }

En een PL/SQL aanroepbare procedure om de java aan te roepen:

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

Als u ten slotte de procedure get_dir_list in uw formulier aanroept, wordt de tabel gevuld met de bestanden in uw directory, die u vervolgens in uw formulierblok kunt inlezen.

De Java-code kwam rechtstreeks uit een Tom Kyte-boek (weet niet meer welk).

BEWERKEN:

Eigenlijk is alle code zo goed als uit deze AskTom-thread gehaald.



  1. Hoe SQLite Lower() werkt

  2. Android Studio 3.0 kanarie 1:SQL-syntaxisfout

  3. hoe rijNum-achtige kolom in sqlite IPHONE te krijgen

  4. Wat is het verschil tussen de backtick en de vierkante haak in SQL-statements?