CREATE OR REPLACE PROCEDURE RunHost Command (command IN VARCHAR2) AS LANGUAGE JAVA NAME 'obackup.backUpDataBaseOracle(java.lang.String)';
创建存储过程是出错,insufficient privilege。要给什么权限才可以?

解决方案 »

  1.   


    --试下
    grant create any procedure to 用户名;
    grant alter any procedure to 用户名;
    grant drop any procedure to 用户名;
    grant execute any procedure to 用户名;
      

  2.   

    grant resource to tony;
    需要赋予权限,可以赋予角色resource。把上面tony换成你的用户名即可。
      

  3.   

    可以了,我还想drop存储过程要怎么敲啊?
      

  4.   


    drop procedure 存储过程名称
      

  5.   

    我在创建存储过程的时候是RUNHOSTCOMMAND(command IN VARCHAR2),我在java调用的时候是这么写的
    RUNHOSTCOMMAND(?,?,?,?)然后说我wrong number or types of arguments in call to
    要怎么改啊?
      

  6.   

    object PDB.RUNHOSTCOMMAND is invalid这个怎么解决啊?
      

  7.   

    参数个数或者类型不对阿。检查下参数个数,还有类型,
    例如
    varchar2 -〉setString()
    number -> setInt()
      

  8.   


    你创建的过程只有一个参数,command,调用的时候4个参数,肯定要抛异常了
      

  9.   

    CREATE OR REPLACE PROCEDURE RunHostCommand (command IN VARCHAR2) AS LANGUAGE JAVA NAME 'obackup.backUpDataBaseOracle(java.lang.String)'
    这个是我创建的存储过程Java code
    import java.io.*;
    import java.io.File;
    import java.io.IOException;
    import java.io.BufferedReader;public class obackup {
    public static void backUpDataBaseOracle(String userName,String passWord,String dataBaseName,String address){
    StringBuffer exp=new StringBuffer("exp");
    exp.append(userName);
    exp.append("/");
    exp.append(passWord);
    exp.append("@");
    exp.append(dataBaseName);
    exp.append("file=");
    /*
     * 
     */
    String maxIndex=address.substring(address.length()-1);
    if("/".equals(maxIndex)||"\\".equals(maxIndex)){
    exp.append(address);
    }else{
    address= address+"\\";
    exp.append(address);
    }
    File file=new File(address);
    if(!file.exists()){
    file.mkdir();
    }
    exp.append(dataBaseName);
    exp.append(".dmp");
    System.out.println("开始备份...");
    try{
    Process p=Runtime.getRuntime().exec(exp.toString());
    InputStreamReader isr= new InputStreamReader(p.getErrorStream());
    BufferedReader br = new BufferedReader(isr);
    String line= null;
    while((line = br.readLine())!=null){
    if(line.indexOf("错误")!=-1){
    break;
    }
    }
    p.destroy();
    p.waitFor();
    System.out.println("备份成功...");
    }catch(IOException e){
    System.out.println(e.getMessage());
    }catch(InterruptedException e){
    System.out.println(e.getMessage());
    }
    }

    }
      

  10.   

     Hint: Parameter 'USER' is declared but never used in 'RunHostCommand'这个问题要怎么解决啊?