日期:2014-05-17  浏览次数:20821 次

备份数据库的存储过程的问题??
我要建一个能够备份数据库存储过程,代码如下:
CREATE   PROCEDURE   "ZJFW ". "BACKUP "   begin
exp   system/111111   full=y   inctype=complete   file=/home/oracle/db_comp.dmp
end;
但总是显示INVALID,EXP语句我放到批处理文件中试了,可以备份数据库的,请问那写的不对么?谢谢!

------解决方案--------------------
EXP是操作系统命令 其实是个执行文件

在存储过程中是不能够调用的
------解决方案--------------------
如果客户端允许安装oracle客户端,那么还是那个批处理,只要改成
exp system/111111@connectstr full=y inctype=complete file=/home/oracle/db_comp.dmp
就可以了,只要本地执行或调用一下就可以备份到客户端来;
如果要备份到服务器的磁盘,则要通过net use命令连接到服务器,然后将file指定成目标路径下的文件名就可以了
如:
net use \\hostname\e$ password /user:username
exp system/111111@connectstr full=y inctype=complete file=\\hostname\e$\home\oracle\db_comp.dmp

如果你是要自己写程序实现,也只要调用这两条系统命令

不过要是想调用服务器的环境执行改功能,恐怕只能你自己写一个远程连接工具或者在服务器端写一个服务程序处于随时等待状态,由客户端发送请求后服务器上的服务程序自己执行exp命令
------解决方案--------------------
具体点,在orafaq.com