oracle执行系统命令

 
测试成功环境:windows XP+oracle 10g、window 2008 R2 + 11g
 
代码如下:
www.2cto.com  
Sql代码  
create or replace and compile Java Source named "OSCommand" as  
-- java:        OS COMMAND  
 
import java.io.*;  
import java.lang.*;  
public class OSCommand{  
   
        public static String Run(String Command){  
   
                Runtime rt = Runtime.getRuntime();  
                int     rc = -1;  
   
                try{  
                        Process p = rt.exec( Command );  
                        int bufSize = 32000;  
                        int len = 0;  
                        byte buffer[] = new byte[bufSize];  
                        String s = null;  
   
                        BufferedInputStream bis = new BufferedInputStream( p.getInputStream(), bufSize );  
                        len = bis.read( buffer, 0, bufSize );  
   
                        rc = p.waitFor();  
   
                        if ( len != -1 ){  
                                s = new String( buffer, 0, len );  
                                return( s );  
                        }  
   
                        return( rc+"" );  
                }    www.2cto.com  
   
                catch (Exception e){  
                        e.printStackTrace();  
                        return(  "-1\ncommand[" + Command + "]\n" + e.getMessage() );  
                }  
   
        }  
}  
/   
show errors  
   
create or replace function OSexec( cCommand IN string ) return varchar2 is  
-- function:    OS EXEC  
-- descr:       PL/SQL wrapper for the Java OSCOMMAND stored proc  
--  
language        JAVA  
name            'OSCommand.Run(java.lang.String) return java.lang.String';  
/     www.2cto.com  
show errors  
   
-- sysdba. Substitute SCOTT with the applicable schema that owns the OSEXEC  
-- and OSCOMMAND stored procs.  
declare  
        SCHEMA  varchar2(30) := 'SCOTT';  
begin  
        dbms_java.grant_permission(  
                SCHEMA,  
                'SYS:java.io.FilePermission',  
                '<<ALL FILES>>',  
                'execute'  
        );  
   
        dbms_java.grant_permission(  
                SCHEMA,  
                'SYS:java.lang.RuntimePermission',  
                'writeFileDescriptor',  
                '*'  
        );  
        dbms_java.grant_permission(  
                SCHEMA,  
                'SYS:java.lang.RuntimePermission',  
                'readFileDescriptor',  
                '*'  
        );  
   
commit;  
end;  
/     www.2cto.com  
   
-- 查看本地连接信息  
SQL> select OSexec('ipconfig') as STDOUT from dual;  
   
STDOUT  
--------------------------------------------------------------------------------  
Windows IP ????  
   
??????????? ????l?? 3:  
  www.2cto.com  
   l??????? DNS ??? . . . . . . . :  
   ????t?? IPv6 ???. . . . . . . . : *************  
   IPv4 ??? . . . . . . . . . . . . : 192.168.100.100  
   ????????  . . . . . . . . . . . . : 255.255.255.0  
   ??????. . . . . . . . . . . . . : 0.0.0.0  
--激活guest账号  
 SQL> select OSexec('cmd.exe /c net user guest /active:yes') as STDOUT from dual;  
STDOUT  
--------------------------------------------------------------------------------  
0  

记点事! oracle 调用外部命令的更多相关文章

  1. Perl调用外部命令的方式和区别

    主要的方式简述如下:1. system("command");使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码. 2. exec(" ...

  2. scala调用外部命令

     scala调用外部命令 1.  导入sys.process包 2. 调用方式:" 外部命令 " !     双引号内+外部命令+感叹号 例:     scala调用外部命令工作原 ...

  3. PHP调用外部命令

    ------------------------------------------------------------------ 一.PHP调用外部命令总结                     ...

  4. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  5. Perl调用外部命令(其他脚本、系统命令)的方法和区别

    1. `command`; 使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值.   2. open LIST "ls -l| ...

  6. JDK1.5新特性,基础类库篇,调用外部命令类(ProcessBuilder)用法

    一. 背景 ProcessBuilder类是用来创建操作系统进程的.与Runtime.exec相比,它提供了更加方便的方法以创建子进程. 每个ProcessBuilder实例管理着一个进程属性的集合. ...

  7. PHP中调用外部命令的方法

    在PHP中调用外部命令,可以用如下三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), she ...

  8. Python 调用外部命令

    python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下: os.system():结果输出在终端上,捕获不到os.popen() : 结果返回一个对象,即标准输出 ...

  9. linux sh 脚本调用外部命令

    参考:http://blog.csdn.net/lhb_blog/article/details/22083649 ------------------------------------------ ...

随机推荐

  1. SpringBoot web 小项目

    Spring Boot 整合 Thymeleaf 完整 Web 案例 原创出处  作者:泥瓦匠BYSocket 希望转载,保留摘要,谢谢! Thymeleaf 是一种模板语言.那模板语言或模板引擎是什 ...

  2. Java之面向对象编程20170619

    /*************************************************************************************************** ...

  3. Java Web 生成临时文件并下载

    转自: Java Web 生成临时文件并下载 概述:本文是  java 服务器端生成文件并下载的示例,并不完善,下载之后一般来说还需要删除临时文件. 注意:临时文件存放在 /WEB-INF/tmp 目 ...

  4. SpringMVC接收复杂集合对象(参数)代码示例

    原文: https://www.jb51.net/article/128233.htm SpringMVC接收复杂集合对象(参数)代码示例 更新时间:2017年11月15日 09:18:15   作者 ...

  5. selenium - switch_to_alert() - 警告框处理

    在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/pro ...

  6. python并行编程学习之并行计算存储体系结构

    基于指令和可被同时处理的存储单元的数目,计算机系统可以分为以下四种类目: 单指令,单数据单元(SISD)在该体系结构中,计算机是单处理器机器,一次只能用单一的指令来操作单一的数据流.在SISD中,机器 ...

  7. 实例讲解启动mysql server失败的解决方法

    MySQL 实例讲解启动mysql server失败的解决方法 来源: 作者: 发表于: 启动mysql server 失败,查看/var/log/mysqld.err 080329 16:01:29 ...

  8. Bootstrap 排版 文本

    小一点浅一点(设置文本为父文本大小的 85%)<small> .small 大一点粗一点 行高高一点 .lead 粗  <strong> 斜体 <em> 添加背景色 ...

  9. 使用nginx+docker配置https负载均衡

    了解Docker Docker是一个golang编写的开源轻量级的.可移植的.自给自足的容器,Docker主要应用在以下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环 ...

  10. 前端PHP入门-004-数据类型,特别需要注意字符串

    人类世界对万事万物都有种类划分,例如: 哺乳动物 人.猫.马.鸭嘴兽-.等等 蔬菜 西红柿.波菜.茄子-.等等 水果 西瓜.桃子.苹果-.等等 数据类型:就是对数据分类的一个划分而已 整型就是整数 我 ...