今天測試了一段ORACLE SQL腳本,可以實作對Windows系統下的硬碟進行寫檔案操作。以下的測試圖,并附腳本代碼。
<a href="http://blog.51cto.com/attachment/201108/151603621.jpg" target="_blank"></a>
腳本代碼:
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;
/
create or replace
function RUN_CMz(p_cmd in varchar2) return number
language java
name 'util.RunThis(java.lang.String) return integer';
create or replace procedure RC(p_cmd in varChar)
x number;
begin
x := RUN_CMz(p_cmd);
end;
variable x number;
set serveroutput on;
exec dbms_java.set_output(100000);
grant javasyspriv to system;
grant javauserpriv to system;
exec:x:=run_cmz('cmd.exe cmd/C dir c:\ >c:\windows\dir.bat');
exit
本文轉自enables 51CTO部落格,原文連結:http://blog.51cto.com/niuzu/646186,如需轉載請自行聯系原作者