• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle执行cmd的实现方法
    不过有一个简单的执行cmd命令方法:
    SQL> host net user
    User accounts for \\PC-ATQHJ4UG1SDA
    ----------------------------------------------------------------------------
    __vmware_user__ admin Administrator
    ASPNET Guest IUSR_PC-ATQHJ4UG1SDA
    IWAM_PC-ATQHJ4UG1SDA SUPPORT_388945a0
    The command completed successfully.
    unix或linux下用
    ! command
    ======================补充======================
    网上的另两种方法:
    1是利用msvcrt.dll
    写一个c:\orac.sql
    内容:
    Rem
    Rem oracmd.sql
    Rem
    Rem Run system commands via Oracle database servers
    Rem
    Rem Bugs to david@ngssoftware.com
    Rem
    CREATE OR REPLACE LIBRARY exec_shell AS
    'C:\windows\system32\msvcrt.dll';
    /
    show errors
    CREATE OR REPLACE PACKAGE oracmd IS
    PROCEDURE exec (cmdstring IN CHAR);
    end oracmd;
    /
    show errors
    CREATE OR REPLACE PACKAGE BODY oracmd IS
    PROCEDURE exec(cmdstring IN CHAR)
    IS EXTERNAL
    NAME "system" LIBRARY exec_shell
    LANGUAGE C;
    end oracmd;
    /
    show errors
    然后C:\&;sqlplus /nolog
    SQL*Plus: Release 8.1.7.0.0 - Production on Thu Jun 7 14:25:38 2001
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    SQL> connect system/manager@orcl (分别是用户名密码和sid)
    Connected.
    SQL> @c:\orac.sql
    Library created.
    No errors.
    Package created.
    No errors.
    Package body created.
    No errors.
    SQL>
    SQL> exec oracmd.exec ('dir > c:\oracle.txt');
    结果在我本机出现
    第 1 行出现错误:
    ORA-28595: Extproc 代理: DLL 路径无效
    ORA-06512: 在 "SYSTEM.ORACMD", line 2
    ORA-06512: 在 line 1
    没有成功。
    第二种方法
    c:\1.sql
    create or replace and compile
    java souRCe named "util"
    as
    import java.io.*;
    import java.lang.*;
    public class util extends Object
    {
    public static int RunThis(String args)
    {
    Runtime rt = Runtime.getRuntime();
    int RC = -1;
    try
    {
    Process p = rt.exec(args);
    int bufSize = 4096;
    BufferedInputStream bis =new BufferedInputStream(p.getInputStream(), bufSize);
    int len;
    byte buffer[] = new byte[bufSize];
    // Echo back what the program spit out
    while ((len = bis.read(buffer, 0, bufSize)) != -1)
    System.out.write(buffer, 0, len);
    RC = p.waitFor();
    }
    catch (Exception e)
    {
    e.printStackTrace();
    RC = -1;
    }
    finally
    {
    return RC;
    }
    }
    }
    c:\2.sql
    create or replace
    function RUN_CMz(p_cmd in varchar2) return number
    as
    language java
    name 'util.RunThis(java.lang.String) return integer';
    c:\3.sql
    create or replace procedure RC(p_cmd in varChar)
    as
    x number;
    begin
    x := RUN_CMz(p_cmd);
    end;
    登陆上去后依旧是依次执行
    SQL> @c:\1.sql
    /
    @c:\2.sql
    /
    @c:\3.sql
    /
    variable x number;
    set serveroutput on;
    exec dbms_java.set_output(100000);
    grant javasyspriv to system;
    grant javauserpriv to system;(网上的方法没有这一行,我无法成功,加上去可以)
    exec :x:=run_cmz('ipconfig'); 成功运行了命令
    测试环境win2003+oracle11g
    您可能感兴趣的文章:
    • Oracle数据库常用命令整理(实用方法)
    • Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题
    • Oracle按身份证号得到省市、性别、年龄的示例代码
    • Windows10安装Oracle19c数据库详细记录(图文详解)
    • Shell脚本连接oracle数据库的实现代码
    • Oracle数据库服务器修改操作系统时间的注意事项详解
    • Linux一键部署oracle安装环境脚本(推荐)
    • CMD操作oracle数据导库过程图解
    上一篇:用Mimer Validator检查SQL查询
    下一篇:ORACLE 正则解决初使化数据格式不一致
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle执行cmd的实现方法 oracle,执行,cmd,的,实现,方法,