本人为了做数据库备份,现在想用JAVA 每天创建文件夹。我在MYECLIPSE当中把程序编写好测试成功以后,部署到ORACLE
当中,ORACLE 可以正常运行,编译也没有问题。可就是不能创建文件夹。想问问大家这是什么原因,或者有什么地方需要修改。PS:我之前做了一个程序,用来得到生成数据文件大小的。也是用JAVA 的 io包来编写程序。
在ORACLE中部署以后可以得到备份文件大小。也是在MYECLIPSE里面编写完毕后,在oracle中部署。没有问题。所以我很奇怪,为什么在ORACLE当中编写的这个程序在MYECLIPSE当中能创建。ORACLE当中不行。所用的JDK 都是1.4 不存在问题。创建过程create or replace procedure datainputfolder
as language java
name 'OptionFiler.createFolder()';
这是JAVA创建文件方法create or replace and compile java source named optionfiler as
import java.text.SimpleDateFormat;
import java.util.Calendar;public class OptionFiler {  public static void createFolder() {
    String filePath = "";
java.io.File myFilePath = null;
    try {
          filePath = "d:/databackup/20100404";
          filePath = filePath.toString();
          myFilePath = new java.io.File(filePath);
          if (!myFilePath.exists()) {
            myFilePath.mkdir();
          }
        }catch (Exception e) {
             e.printStackTrace();
         }
     }
}

解决方案 »

  1.   

    我想原因應該是
    the Permission (java.io.FilePermission /u02/backups/2010 read) has not been granted to HR. The PL/SQL to grant this is dbms_java.grant_permission( 'HR', 'SYS:java.io.FilePermission', '/u02/backups/2010', 'read' )
    the Permission (java.io.FilePermission /u02/backups/2010 write) has not been granted to HR. The PL/SQL to grant this is dbms_java.grant_permission( 'HR', 'SYS:java.io.FilePermission', '/u02/backups/2010', 'write' )
    試一下先:
    begin
    dbms_java.grant_permission( 'HR', 'SYS:java.io.FilePermission', '/u02/backups/2010', 'read' );
    dbms_java.grant_permission( 'HR', 'SYS:java.io.FilePermission', '/u02/backups/2010', 'write' );
    end;
      

  2.   

    具體原因是,執行該datainputfolder的用戶沒有"d:/databackup/20100404"的讀寫權限。
      

  3.   

    直接用java重建目录了,为何要用oracle调用java呢?
      

  4.   

    mkdirs() 创建整个目录文件夹