Oracle调用shell脚本方法(二)
2013-11-19 14:29
1446 查看
Oracle 用scheduler调用外部脚本方法:
http://blog.csdn.net/xile99/article/details/15504219
下面利用在Oracle里创建Java class和function来实现,这种方法可以获取外部脚本执行的返回值:
首先在Oracle上创建如下的Java class:
CREATEOR
REPLACEAND
COMPILEJAVA
SOURCENAMED "OSCommand"AS
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public
class OSCommand{
public
static String Run(String
Command){
StringBuffer sb =new StringBuffer();
try {
Process p = Runtime.getRuntime().exec("Command ");
BufferedReader
in =new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line =null;
while ((line = in.readLine()) !=null)
{
System.out.println(line);
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
创建function:
CREATE
or REPLACE
FUNCTION OSCommand_Run(CommandINSTRING)
RETURNVARCHAR2IS
LANGUAGEJAVA
NAME'OSCommand.Run(java.lang.String) return int';
/
以sys登陆数据库,并为用户scott赋权:
SQL> conn sys/oracle as sysdba
Connected.
SQL> Execute dbms_java.grant_permission( 'SCOTT', 'SYS:java.io.FilePermission', '<<ALL FILES>>','execute');
execute dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '*' );
execute dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'readFileDescriptor', '*' );
调用function来运行外部脚本:
SQL> select OSC
a1a2
ommand_Run('cmd.exe /C echo asdgasdfg') from dual;
OSCOMMAND_RUN3('CMD.EXE/CECHOASDGASDFG')
-------------------------------------------------------------------------
asdgasdfg
这里跑的是windows操作系统下命令行的简单命令,看到可以返回值。
在linux环境的测试,未完待续....
http://blog.csdn.net/xile99/article/details/15504219
下面利用在Oracle里创建Java class和function来实现,这种方法可以获取外部脚本执行的返回值:
首先在Oracle上创建如下的Java class:
CREATEOR
REPLACEAND
COMPILEJAVA
SOURCENAMED "OSCommand"AS
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public
class OSCommand{
public
static String Run(String
Command){
StringBuffer sb =new StringBuffer();
try {
Process p = Runtime.getRuntime().exec("Command ");
BufferedReader
in =new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line =null;
while ((line = in.readLine()) !=null)
{
System.out.println(line);
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
创建function:
CREATE
or REPLACE
FUNCTION OSCommand_Run(CommandINSTRING)
RETURNVARCHAR2IS
LANGUAGEJAVA
NAME'OSCommand.Run(java.lang.String) return int';
/
以sys登陆数据库,并为用户scott赋权:
SQL> conn sys/oracle as sysdba
Connected.
SQL> Execute dbms_java.grant_permission( 'SCOTT', 'SYS:java.io.FilePermission', '<<ALL FILES>>','execute');
execute dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '*' );
execute dbms_java.grant_permission('SCOTT','SYS:java.lang.RuntimePermission', 'readFileDescriptor', '*' );
调用function来运行外部脚本:
SQL> select OSC
a1a2
ommand_Run('cmd.exe /C echo asdgasdfg') from dual;
OSCOMMAND_RUN3('CMD.EXE/CECHOASDGASDFG')
-------------------------------------------------------------------------
asdgasdfg
这里跑的是windows操作系统下命令行的简单命令,看到可以返回值。
在linux环境的测试,未完待续....
相关文章推荐
- oracle调用shell脚本方法(一)
- 在shell脚本中调用另一个脚本的三种不同方法
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- Shell中调用、引用、包含另一个脚本文件的三种方法
- 在shell脚本中调用另一个脚本的三种方法
- C程序调用shell脚本共有三种方法
- Shell中调用、引用、包含另一个脚本文件的三种方法
- qt中调用shell脚本并监控返回的方法
- shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- shell脚本调用另一个脚本的三种不同方法(fork, exec, source)
- shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- C程序调用shell脚本共有三种方法
- Shell脚本中调用另外一个脚本的方法
- shell脚本调用方法及适用场景
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- shell中调用另外的脚本文件的两种方法
- shell脚本学习之调用脚本将文件打包zip的方法示例
- shell脚本里相互调用的方法