如何在Oracle存储过程中读写文件

如何在Oracle存储过程中读写文件,第1张

1. 授于test用户文件读写和执行命令的权限

SQL>exec dbms_java.grant_permission('TEST','SYS:java.io.FilePermission','<<ALL FILES>>','read,write,execute,delete')

SQL>exec dbms_java.grant_permission('TEST'销喊,'java.lang.RuntimePermission','岁槐*','writeFileDescriptor' )

2. 建立java source

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "bb" as import java.io.*

import java.lang.*

import java.util.*

import java.sql.*

import oracle.sql.*

public class bb

{

public static void invoke_exe() throws IOException

{

Process p=Runtime.getRuntime().exec("d:/亏雀野exp_74.bat")--注意/符号

try

{

p.waitFor()

}catch(InterruptedException ie){System.out.println(ie)}

}

}

/

3. 建立调用java source的存储过程CALL_BB

create or replace procedure CALL_BB

as

language java

name 'bb.invoke_exe()'

/

4. 执行CALL_BB即可;

1:先创建SQL 文型核件spool.sql

内容:

set head off

spool c:\select.txt

select * from tbl

spool off

2:然后创举嫌建一test.bat文件

文件内容:

cd c:\

sqlplus "test/test" @c:\spool.sql

这时候直接运行test.bat会再c:\盘下正租手生成select.txt文件,

3:在windows

start->programs->Accessories->System Tools->Scheduled Tasks里面定义每天运行一次

第一碧岁返步:找到procedures,右键新建

第二步:在name中输入存储过程名字(这里输入的就是你以后需要调用的名字),parameters后是参数悔饥,在里面定义参数的类型。

第三步:编写存储过程语句。雀肢

4 第四步: 存储过程调用

CallableStatement

cs=conn.divpareCall("{call

mymd_gis_pro(?,?,?,?,?)}")//1代表第一个参数,setint表示参数类型是int型cs.setInt(1,188)

cs.setInt(2,12)cs.setInt(3,12)

...... //执行Oracle存储过程

cs.execute()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12263376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存