zoukankan      html  css  js  c++  java
  • 记点事! oracle 调用外部命令

    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 command[" + Command + "] " + 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  
  • 相关阅读:
    第七章 Net 5.0 快速开发框架 YC.Boilerplate -- 数据层ORM 设计
    第六章 Net 5.0 快速开发框架 YC.Boilerplate -- 代码生成和数据库表生成
    第五章 Net 5.0 快速开发框架 YC.Boilerplate -- 缓存模块
    第四章 Net 5.0 快速开发框架 YC.Boilerplate-- 动态WebApi
    第三章 Net 5.0 快速开发框架 YC.Boilerplate-- 多租户介绍
    第二章 Net 5.0 快速开发框架 YC.Boilerplate-- 快速入门
    第一章 Net 5.0 快速开发框架 YC.Boilerplate--框架介绍
    【雕爷学编程】Arduino动手做(90)---4X4矩阵薄膜键盘模块
    【雕爷学编程】Arduino动手做(89)---8位双向电平转换模块
    多端自动化运行:pc+android+ios+小程序 均可
  • 原文地址:https://www.cnblogs.com/fat_li/p/3860351.html
Copyright © 2011-2022 走看看