QT备份oracle数据库并恢复,使用QProcess类

QT备份oracle数据库并恢复,使用QProcess类

介绍

使用QProcess类启动cmd命令行,传入参数登录oracle数据库,执行备份与恢复的sql语句.

代码示例,亲测可用

下面是备份的代码,恢复时类似,只需把sql语句中的exp换成imp即可.
备份sql语句解析,这里是按表备份:
host exp 用户名/密码@数据库名 file=保存路径 tables(表1,表2…)

    QProcess t_Process(this);//应用程序类
    t_Process.setProcessChannelMode(QProcess::MergedChannels);
    QStringList argument;//参数列表
    argument << "/c" << "sqlplus";
    t_Process.start("cmd",argument);//启动cmd程序,传入参数
    bool isok = t_Process.waitForStarted();
    qDebug()<<"["<<__FILE__<<"]"<<__LINE__<<__FUNCTION__<<" "<<isok;//打印启动是否成功
    t_Process.write("system\r\n");//输入oracle账号
    t_Process.write("oracle\r\n");//输入oracle密码
    t_Process.write("host exp system/oracle@orcl file=d:/backup.dmp tables=(BASESTATIONDB,TEST_TABLE)\r\n");//输入备份sql语句
    t_Process.closeWriteChannel();//关闭输入通道
    t_Process.waitForFinished();
    QString strTemp=QString::fromLocal8Bit(t_Process.readAllStandardOutput());//获取程序输出
    t_Process.close();//关闭程序
    qDebug()<<"["<<__FILE__<<"]"<<__LINE__<<__FUNCTION__<<" "<<strTemp;//打印输出

猜你喜欢

转载自blog.csdn.net/weixin_40355471/article/details/107620082