如何在存储过程中调用exp\imp或expdp\impdp? 请问如何在存储过程中调用exp\imp或expdp\impdp?oracle 10g最好可以给一个具体的实例啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有两种方法可以做到: A。使用java B。使用pro*c 先介绍使用Java的方法: a.首先建立java类 import java.io.*; public class Cmd { public static boolean cmdExecute(String cmd) { Process proc=null; int exitValue; try { System.out.println(cmd); proc=Runtime.getRuntime().exec(cmd); exitValue=proc.waitFor(); return (exitValue==0); } catch(Exception e){ System.out.println( "Failure: "+e.getMessage()); return false; } } public static boolean cmdExecute(String cmd,int interCmd) { if (interCmd==1) { return cmdExecute( "C:\\Windows\\System32\\cmd.exe /c /y "+cmd); } else { return cmdExecute(cmd); } } public static void main(String args[]) { String cmd= " "; for(int i=0;i <args.length;i++) cmd+= " "+args[i]; cmdExecute(cmd,1); } } b.使用oracle提供的loadjava工具load到系统中 c.付权限 exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'G:\waitfor.exe ', 'execute ') EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'java.io.FilePermission ', ' <> ', 'read ,write, execute, delete '); EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'SYS:java.lang.RuntimePermission ', 'writeFileDescriptor ', ' '); EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'java.io.FilePermission ', 'G:\* ', 'read,write,delete '); exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'C:\Windows\system32\cmd.exe ', 'execute ') exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'G:\bb.bat ', 'execute ') 4.建立存储过程。 create or replace procedure cmdExecute(cmd varchar2) as language java name 'DiffCmd.cmdExecute(java.lang.String) '; 5。完成,直接执行即可。 SQL> cmdExecute( "exp... "); 实例可以baidu或google搜索一下,遇到问题最好的老师是baidu或google,如果还弄不明白的话,就道论坛上相应的版块问一下。 你见过procedure调用系统命令的么?我是没见过,不过你可以用java 存储过程调用哦,或者是用pro C 10g的监听启动不了!咋办? 图片提取问题 接触oracle快两年了,忽然很想系统的学一下,请大家推荐几本书,最好是中文的。 如何查看那些sql语句没有释放?马上揭帖 为什么不能用别名?? 表的最后被访问时间 请问,数据库表中的数据在数据库中是按照什么顺序存放的? pl/sql简单问题: 使用sqlldr 在oracle7和oracle8i之间导数据时碰到日期格式的问题? 装oracle9i时,为什么64%就停下很久不动了? 多表连接连接方式的选择问题 数据库中没有数据,但是能查出数据
A。使用java
B。使用pro*c
先介绍使用Java的方法:
a.首先建立java类
import java.io.*; public class Cmd {
public static boolean cmdExecute(String cmd) {
Process proc=null;
int exitValue;
try {
System.out.println(cmd);
proc=Runtime.getRuntime().exec(cmd);
exitValue=proc.waitFor();
return (exitValue==0);
} catch(Exception e){
System.out.println( "Failure: "+e.getMessage());
return false; }
}
public static boolean cmdExecute(String cmd,int interCmd) {
if (interCmd==1)
{
return cmdExecute( "C:\\Windows\\System32\\cmd.exe /c /y "+cmd);
}
else
{
return cmdExecute(cmd);
}
}
public static void main(String args[]) {
String cmd= " ";
for(int i=0;i <args.length;i++)
cmd+= " "+args[i]; cmdExecute(cmd,1);
}
}
b.使用oracle提供的loadjava工具load到系统中
c.付权限
exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'G:\waitfor.exe ', 'execute ')
EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'java.io.FilePermission ', ' <> ', 'read ,write, execute, delete ');
EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'SYS:java.lang.RuntimePermission ', 'writeFileDescriptor ', ' ');
EXEC Dbms_Java.Grant_Permission( 'SYSTEM ', 'java.io.FilePermission ', 'G:\* ', 'read,write,delete ');
exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'C:\Windows\system32\cmd.exe ', 'execute ')
exec dbms_java.grant_permission( 'SYSTEM ', 'SYS:java.io.FilePermission ', 'G:\bb.bat ', 'execute ') 4.建立存储过程。
create or replace procedure cmdExecute(cmd varchar2) as language java name 'DiffCmd.cmdExecute(java.lang.String) '; 5。完成,直接执行即可。
SQL> cmdExecute( "exp... ");
如果还弄不明白的话,就道论坛上相应的版块问一下。
我是没见过,不过你可以用java 存储过程调用哦,或者是用pro C