Oacle 실행 cmd 구현 방법

2481 단어 Oaclecmd
그러나 cmd 명령 을 간단하게 실행 하 는 방법 은 SQL>host net user user accounts for\\\PC-ATQHJ4UG1SDAvmware_user__ admin Administrator ASPNET Guest IUSR_PC-ATQHJ4UG1SDA IWAM_PC-ATQHJ4UG1SDA SUPPORT_388945a 0 The command completed successfully.유 닉 스 또는 Liux 에서 사용 합 니 다!command===================================================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 and 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'); 결 과 는 이 컴퓨터 에서 첫 번 째 줄 에 오류 가 발생 했 습 니 다.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:=runcmz('ipconfig'); 명령 테스트 환경 win 2003+Oacle11g 을 성공 적 으로 실행 하 였 습 니 다.

좋은 웹페이지 즐겨찾기