Error: Hint: Parameter 'PUSER' is declared but never used in 'RunHostCommand'
Line: 1
Text: CREATE OR REPLACE PROCEDURE RunHostCommand (PUSER IN VARCHAR2,PPWD IN VARCHAR2,NAME IN VARCHAR2,PADDRESS IN VARCHAR2) AS LANGUAGE JAVA NAME 'obackup.backUpDataBaseOracle(java.lang.String)';
这个是因为什么啊?

解决方案 »

  1.   

    声明了参数PUSER ,但是你的存储过程没有调用它,检查下代码
      

  2.   

    import java.io.InputStreamReader;
    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());
    }
    }

    }
    这个是代码
      

  3.   

    oracle中调java不懂RunHostCommand (PUSER IN VARCHAR2,PPWD IN VARCHAR2,NAME IN VARCHAR2,PADDRESS IN VARCHAR2)
    你这里的参数名字是不是需要和java中的一样才行?
      

  4.   

    还是不行,就算一样也不行。而且我用java调用oracle存储过程的时候说我没有java方法,但是我有。
      

  5.   

    成功了,是java类有问题。没有成功执行