建立一个删除文件的java存储过程create or replace and compile java source named filetool as public class filetool { public static void del(String filename) { java.io.File f=new java.io.File(filename); f.delete(); } }声明一个pl/sql存储过程和上面的对应create or replace procedure delfile(filename varchar2) as language java name 'filetool.del(java.lang.String)';执行: exec delfile('your file name');
TO: CodeMagic(ErrorDetector) 感谢你的回答,但是我拷贝了你的代码,但是运行有错误, 例如,我要删除 D:\12.txt文件 begin delfile('D:\12.txt'); end;报如下错误ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: the Permission (java.io.FilePermission D:\12.txt delete) has not been granted by dbms_java.grant_permission to SchemaProtectionDomain(AAA|PolicyTableProxy(AAA))我用 ‘AAA’这个用户登录,有dba权限 再麻烦你解答一下,谢谢
begin exec dbms_java.grant_permission('PUBLIC','java.io.FilePermission','d:\*','read,write'); delfile('D:\12.txt'); end;
public class filetool
{
public static void del(String filename)
{
java.io.File f=new java.io.File(filename);
f.delete();
}
}声明一个pl/sql存储过程和上面的对应create or replace procedure delfile(filename varchar2)
as language java name 'filetool.del(java.lang.String)';执行:
exec delfile('your file name');
例如,我要删除 D:\12.txt文件
begin
delfile('D:\12.txt');
end;报如下错误ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: the Permission (java.io.FilePermission D:\12.txt delete) has not been granted by dbms_java.grant_permission to SchemaProtectionDomain(AAA|PolicyTableProxy(AAA))我用 ‘AAA’这个用户登录,有dba权限
再麻烦你解答一下,谢谢
exec dbms_java.grant_permission('PUBLIC','java.io.FilePermission','d:\*','read,write'); delfile('D:\12.txt');
end;
赋予删除权限
否则报错
begin
DBMS_JAVA.GRANT_PERMISSION('PUBLIC',
'java.io.FilePermission',
'd:\*',
'read,write');
DELFILE('d:\12.txt');
end;
2、我使用utl_file包建立文件 是这样的
v_file := utl_file.fopen('/path1/path2/','12.txt','w');
其中 文件路径是 '/path1/path2/'
这样的话,再用上面的方法 delfile('/path1/path2/12.txt');就又不行了
应当怎样解决好呢? 谢谢。