怎么在VB里写一段代码实现Oracle数据库的备份与恢复? 5
我用的数据库是Oracle9i。在VB里的一个窗体里,点击【数据备份】按钮,则数据库里的所有表都备份。最好,可以设置备份路径。谢谢各位高手!...
我用的数据库是Oracle9i。在VB里的一个窗体里,点击【数据备份】按钮,则数据库里的所有表都备份。最好,可以设置备份路径。谢谢各位高手!
展开
2个回答
展开全部
有三种思路
思路一(适应于数据不多的情况下):
1、备份表结构,执行SQL语句(select dbms_metadata.get_ddl('TABLE','表名','用户名') from dual;)得到指定表(指定表的话可以先通过查询user_tables视图得到当前用户的所有表清单展示在界面供选择)的ddl语句(建表sql),并将建表sql保存起来,下次导入时可以直接运行生成表。
2、备份数据,通过执行sql得到指定表的insert语句,并保存在指定目录的文本文件中,sql语句为:Select 'Insert into 表名 (字段1,字段2) ' ||
'Values(' || '''' || 字段1 || '''' || ',''' || 字段2 || '''' ||')'
from 表名;要得到指定表的字段信息可以通过查询user_tab_columns视图得到,具体语句为:select * from user_tab_columns where table_name =表名。
思路二(大数据推荐此思路):
通过vb执行windows脚本调用oracle的exp来进行数据备份,exp的语法格式可以通过在cmd中运行exp -help得到帮助(前提条件需要安装oracle 客户端)。
思路三:
利用第三方插件或者API将数据导出为txt或excell,也可以自己写,方法为在vb中连接数据库查询表,将数据逐行生成以指定分隔符(如逗号)分隔的文本,行与行之间用换行符分隔。
思路一(适应于数据不多的情况下):
1、备份表结构,执行SQL语句(select dbms_metadata.get_ddl('TABLE','表名','用户名') from dual;)得到指定表(指定表的话可以先通过查询user_tables视图得到当前用户的所有表清单展示在界面供选择)的ddl语句(建表sql),并将建表sql保存起来,下次导入时可以直接运行生成表。
2、备份数据,通过执行sql得到指定表的insert语句,并保存在指定目录的文本文件中,sql语句为:Select 'Insert into 表名 (字段1,字段2) ' ||
'Values(' || '''' || 字段1 || '''' || ',''' || 字段2 || '''' ||')'
from 表名;要得到指定表的字段信息可以通过查询user_tab_columns视图得到,具体语句为:select * from user_tab_columns where table_name =表名。
思路二(大数据推荐此思路):
通过vb执行windows脚本调用oracle的exp来进行数据备份,exp的语法格式可以通过在cmd中运行exp -help得到帮助(前提条件需要安装oracle 客户端)。
思路三:
利用第三方插件或者API将数据导出为txt或excell,也可以自己写,方法为在vb中连接数据库查询表,将数据逐行生成以指定分隔符(如逗号)分隔的文本,行与行之间用换行符分隔。
展开全部
在vb中调用shell命令。
例如:shell "c:\command.com /c exp user/pwd@oraInstance owner=dbuser file=Inputpath"
其中shell "c:\command.com /c是调用dos command窗口
exp是oracle自带exe,
注意windows环境变量path路径要有oracle的bin目录。
file=Inputpath,inputpath就是你要保存的路径跟文件名
够明白了吧
例如:shell "c:\command.com /c exp user/pwd@oraInstance owner=dbuser file=Inputpath"
其中shell "c:\command.com /c是调用dos command窗口
exp是oracle自带exe,
注意windows环境变量path路径要有oracle的bin目录。
file=Inputpath,inputpath就是你要保存的路径跟文件名
够明白了吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询