java如何导入数据库DMP文件到远程服务器上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何导入数据库DMP文件到远程服务器上?相关的知识,希望对你有一定的参考价值。

我在写一个小程序,能够把一个文件夹下的所有的SQL和DMP文件全部导入到远程服务器的数据库上
而且必须假设当前的客户机上没有JAVA和ORACLE的环境变量
(我自己的文件夹里提供了JDK,使用xxx.bat形式创建临时的环境变量,但是ORACLE的客户端实在太大了,不可能放在我自己的文件夹里不方复制转移.)
JAVA自己是否有方法能够导入DMP?
写的好的追加分,我的分太多了,好希望给大家啊哈哈
千万不要说什么打开CMD 去IMP
只能用JAVA
其实我也觉得不太可能..................

或者jdbc能否调用sqlplus?
如果说远程服务器上有 e:/test.dmp
能否通过
stmt.execute("imp test/password@orcl file=E:/test_data.dmp full=y ignore=y");
或者类似的当发来执行呢,这个地方报错不是有效的SQL语句,
如果能调用SQLPLUS那也行啊

参考技术A 方法1,imp是oracle提供的系统命令,在cmd下可以调用,故可以通过java.lang.Runtime包里的exec来实现。具体你去看看手册。
这个方法的前提条件是必须服务器在cmd下能执行imp命令,如果是linux的服务器,也只要能执行同样调用。

方法2,通过sql语句实现。

就是自己实现备份,恢复。不使用oracle内部的命令。
原理就是检索出所有的对象,然后写入文件,这里要注意分批导出与分批导入(也就是多个文件),不然数据量大了,速速就很慢。
导出数据,存储过程,触发器,视图,权限等。这个就看你的需求了。。

然后在分析文件实现导入。。

3,自己编写系统程序,实现导入功能,仍然通过Runtime.exec来调用。

4,因为imp是系统命令,你用stmt来调用是不对的,这个stmt只能执行sql语句,是oracle来分析的,所以会报错不是有效的sql语句。

你换runtime.exec来执行,我想应该会成功的。。。本回答被提问者采纳
参考技术B dmp是二进制数据,不用imp用java如何解析再导入oracle?
imp是oracle提供的导入数据接口,你不使用自己写?
难啊…,观望中…

以上是关于java如何导入数据库DMP文件到远程服务器上?的主要内容,如果未能解决你的问题,请参考以下文章

oracle导入:怎么将远程电脑上导出的dmp导入到本机oracle用户下

在oracle中导入dmp文件后怎样删除

怎么将oracle数据导成dmp格式

oracle dmp导入后还需要建立表空间吗?

怎么指定时间的导出数据库某个表的DMP文件?

oracle如何给指定的用户导入dmp