Oracle
 sql >> Baza danych >  >> RDS >> Oracle

problem ze znalezieniem listy plików w katalogu

Zrobiłem coś w tym stylu:

Utwórz katalog Oracle dla katalogu, który chcesz wyświetlić:

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

Zbuduj tabelę tymczasową:

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

Będziesz potrzebować procedury składowanej 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 };
      }
  }

  }

I wywoływalna procedura PL/SQL do wywołania javy:

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

Na koniec wywołanie procedury get_dir_list w formularzu zapełni tabelę plikami z twojego katalogu, które możesz następnie wczytać do bloku formularza.

Kod Java pochodzi prosto z książki Toma Kyte'a (nie pamiętam, który).

EDYCJA:

Właściwie cały kod został w dużej mierze usunięty z tego wątku AskTom.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z bazy danych Oracle z CakePHP 2.0

  2. Architektura pakietu Oracle E-Business Suite w 12.2

  3. Zwracanie wartości kolumny tożsamości po wstawieniu do Oracle

  4. Różnica między klauzulą ​​WITH a podzapytanie?

  5. Nie ma więcej danych do odczytania z błędu gniazda