*
* ExecuteCmd.java
* This is a sample application that uses the Runtime Object
* to execute a program.
*
*/
/* Import the classes needed for Runtime, Process, and Exceptions */
import java.lang.Runtime;
import java.lang.Process;
import java.io.IOException;
import java.lang.InterruptedException;
class ExecuteCmd {
public static void main(String args[]) {
System.out.println("In main");
try {
/* Execute the command using the Runtime object and get the
Process which controls this command */
Process p = Runtime.getRuntime().exec(args[0]);
/* Use the following code to wait for the process to finish
and check the return code from the process */
try {
p.waitFor();
/* Handle exceptions for waitFor() */
} catch (InterruptedException intexc) {
System.out.println("Interrupted Exception on waitFor: " + intexc.getMessage());
}
System.out.println("Return code from process"+ p.exitValue());
System.out.println("Done executing");
/* Handle the exceptions for exec() */
} catch (IOException e) {
System.out.println("IO Exception from exec : " +
e.getMessage());
e.printStackTrace();
}
}
}
------------------------------------------------------------------
위의 소스를 컴파일 한다.
> javac ExecuteCmd.java
DB에 클래스 파일을 로드한다.
$> loadjava -u scott/tiger ExecuteCmd.class
이미 있는 때 드롭하고 다시하거나 강제로 로드한다.
> dropjava -u scott/tiger ExecuteCmd.class
> loadjava -u scott/tiger ExecuteCmd.class -f
프로시져를 하나 만든다.
SQL> connect scott/tiger
SQL> CREATE OR REPLACE PROCEDURE executecmd (S1 VARCHAR2) AS LANGUAGE JAVA name 'ExecuteCmd.main(java.lang.String[])';
/
권한을 부여
SQL> connect system/manager
SQL> grant javasyspriv to scott;
SQL> grant javauserpriv to scott;
실행을 해본다.
SQL> connect scott/tiger
SQL> set serveroutput on
SQL> call dbms_java.set_output(2000);
SQL> EXEC executecmd('/usr/bin/ls -la');
In main
Return code from process 0
Done executing
* 0을 리턴해야 실행이 된거에요. 반드시 명령어는 절대경로로 사용해야 한다.
'development > oracle' 카테고리의 다른 글
오라클에서 테이블명, 컬럼명, SYNONYM 등등 조회 (0) | 2010.04.21 |
---|---|
프로시져 컴파일 (0) | 2010.04.21 |
원격 DB SEQUENCE 시퀀스 사용하기 (0) | 2010.04.21 |
오라클 시스템 테이블 (0) | 2010.04.21 |
오라클 system, sys 암호 (0) | 2010.04.21 |