用UTL_FILE貌似不好列出所有文件

解决方案 »

  1.   

    JAVA存储过程
    SQL> --1.创建java代码
    SQL> create or replace and compile java source named TestFile as
      2  import java.io.*;
      3  public class FileClass
      4  {
      5     public static void printFiles(){
      6        File f = new File("c:\\");
      7        String[] s = f.list();
      8        for(int i=0; i<s.length; i++)
      9           System.out.println(s[i]);
     10     }
     11  }
     12  /Java 已创建。SQL> 
    SQL> --2.创建存储过程
    SQL> create or replace procedure print_file
      2  as 
      3  language java 
      4  name 'FileClass.printFiles()';
      5  /过程已创建。SQL> 
    SQL> --设置输出
    SQL> set serveroutput on;
    SQL> --赋权
    SQL> exec dbms_java.grant_permission( 'TEST', 'SYS:java.io.FilePermission', 'c:\', 'read' );PL/SQL 过程已成功完成。SQL> --设置java输出缓冲区
    SQL> exec dbms_java.set_output(5000);PL/SQL 过程已成功完成。SQL> --执行测试
    SQL> exec print_file;
    AUTOEXEC.BAT
    boot.ini
    bootfont.bin
    CONFIG.SYS
    Documents and Settings
    IO.SYS
    MSDOS.SYS
    MSOCache
    NTDETECT.COM
    ntldr
    pagefile.sys
    Program Files
    RECYCLER
    rp.txt
    sqlnet.log
    System Volume Information
    Temp
    tnsnames.ora
    WINDOWS
    wmpubPL/SQL 过程已成功完成。SQL> 
      

  2.   

    难道只有这种办法了么?就没有其他办法?就不能用oracle 自己的办法来解决?一定要引入java?