oracle存储过程用过java 调用shell脚本问题 在线等

java代码:createorreplaceandcompilejavasourcenamedSH_RUNNBERasimportjava.io.IOException;... java 代码:
create or replace and compile java source named SH_RUNNBER as
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class SH_RUNNBER {
public static void down_load_sftp(String shFile) throws Exception{
Process process;
process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shFile},null,null);
InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
process.waitFor();
while ((line = input.readLine()) != null){
System.out.println(line);
}
input.close();
}
}
oracle 存储过程:
procedure sftp_download_java(p_sh_file varchar2) as
language java name 'SH_RUNNBER.down_load_sftp(java.lang.String)';
procedure test_sftp;

sh 脚本:
#!/bin/bash
echo 1;
touch /home/oraprod/ftp/hahah.txt
echo 2;

权限赋值:
begin
-- 'DEV' 为 ORACLE 用户
dbms_java.grant_permission('DEV','java.io.FilePermission','<<ALL FILES>>','read,write,execute,delete' );
dbms_java.grant_permission('DEV','SYS:java.io.FilePermission','<<ALL FILES>>','read,write,execute,delete' );
dbms_java.grant_permission('DEV', 'java.lang.RuntimePermission','*','writeFileDescriptor' );
commit;
end;

数据库oracle 11g,操作系统 aix

执行后,没有新建hahah.txt, 但我在数据库jdk 中单独执行java 是有效的
在线求高人指点
展开
 我来答
renfengjun1986
2014-08-11 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部
执行后有什么报错信息嘛?
我做过使用java procedure输出目录信息的,但是没弄过调用外部shell的程序。
zuoshuaiok
2014-07-31 · 超过30用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:79.8万
展开全部
调用的写法对吗? 检查一下.可能没有调用成功.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式