oracle执行cmd的实现方法

陌上花开帆

陌上花开帆

2016-02-19 09:29

下面是个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:windowssystem32msvcrt.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
展开更多 50%)
分享

猜你喜欢

oracle执行cmd的实现方法

编程语言 网络编程
oracle执行cmd的实现方法

oracle 发送邮件 实现方法

编程语言 网络编程
oracle 发送邮件 实现方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 下医嘱执行函数

编程语言 网络编程
Oracle 下医嘱执行函数

在ORACLE中实现SELECTTOPN的方法

电脑网络
在ORACLE中实现SELECTTOPN的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

oracle应用程序实现打包 的方法

编程语言 网络编程
oracle应用程序实现打包 的方法

Oracle的SQL语句执行效率问题查找与解决方法

编程语言 网络编程
Oracle的SQL语句执行效率问题查找与解决方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

画挽眼眸印温柔 - QQ情侣分组

画挽眼眸印温柔 - QQ情侣分组

MySQL下将一个表的数据插入到另外一个表的实现语句

MySQL下将一个表的数据插入到另外一个表的实现语句
下拉加载更多内容 ↓