如何在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里面定义每天运行一次


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存