exec master.dbo.xp_cmdshell 'net user /add aaa bbb
sql server可以这样用

解决方案 »

  1.   

    xp_cmdshell是什么意思,执行操作系统命令?
      

  2.   

    在代码里 通过调用存储过程  xp_cmdshell  执行外部系统命令 比如copy一个文件等
    oracle里是否有类似的存储过程或者函数提供
      

  3.   

    Oracle中恐怕没有直接提供这样的函数/过程,用PROC?
      

  4.   

    在sqlplus里可以 比如 host dir
    但是在存储过程里,挺麻烦的
    http://searchdatabase.techtarget.com.cn/411/2234411.shtml?1
      

  5.   

    oracle使用Proc或者java存储过程。
    import java.io.*;public class Cmd {
    public static boolean cmdExecute(String cmd) {
    Process proc=null;
    int exitValue;
    try {
    System.out.println(cmd);
    proc=Runtime.getRuntime().exec(cmd);
    exitValue=proc.waitFor();
    return (exitValue==0);
    } catch(Exception e){
    System.out.println("Failure:"+e.getMessage());
    return false;

    }
    }
    public static boolean cmdExecute(String cmd,int interCmd) {
    if (interCmd==1)
    {
    return cmdExecute("C:\\Windows\\System32\\cmd.exe /c /y "+cmd);
    }
    else
    {
    return cmdExecute(cmd);
    }
    }
    public static void main(String args[]) {
    String cmd="";
    for(int i=0;i<args.length;i++)
    cmd+=" "+args[i]; cmdExecute(cmd,1);
    }
    }/*
     create or replace procedure cmdExecute(cmd varchar2) as language java name 'DiffCmd.cmdExecute(java.lang.String)';
    exec dbms_java.grant_permission( 'SYSTEM', 'SYS:java.io.FilePermission','G:\waitfor.exe', 'execute')
    EXEC Dbms_Java.Grant_Permission('SYSTEM', 'java.io.FilePermission', '<>', 'read ,write, execute, delete');
    EXEC Dbms_Java.Grant_Permission('SYSTEM', 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '');
    EXEC Dbms_Java.Grant_Permission('SYSTEM', 'java.io.FilePermission', 'G:\*', 'read,write,delete');
    exec dbms_java.grant_permission( 'SYSTEM', 'SYS:java.io.FilePermission','C:\Windows\system32\cmd.exe', 'execute')
    exec dbms_java.grant_permission( 'SYSTEM', 'SYS:java.io.FilePermission','G:\bb.bat', 'execute')EXEC Dbms_Java.revoke_Permission('SYSTEM', 'java.io.FilePermission', 'G:\*', 'read,write,delete');
    EXEC Dbms_Java.revoke_Permission('SYSTEM', 'java.io.FilePermission', '<>', 'read ,write, execute, delete');
    */