zoukankan      html  css  js  c++  java
  • SQL Server通过BCP进行大批量数据导入导出

    预置条件:

    使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin。

    删除已存在的存储过程

    String JOB_BCP_DELETE_SQL = “IF EXISTS (SELECT * FROM sys.objects WHERE name = 'PROCEDURE_BCP_OUT' AND type in (N'P', N'PC'))
     DROP PROCEDURE PROCEDURE_BCP_OUT 
    ”;
    pre = conn.prepareStatement(JOB_BCP_DELETE_SQL);
    pre.execute();

    创建存储过程

    String sql = "set @sql = N'BCP ' + @tableName + ' out ' + @filePath + ' -c -t -U "' + @userName + '" -P "' + @password + '" -S "' + @dbIp + '"'
    ";
    StringBuffer createSqlBuf = new StringBuffer();
    createSqlBuf.append("CREATE PROCEDURE PROCEDURE_BCP_OUT 
    ")
        .append("@dbIp nvarchar(256),
    ")
        .append("@userName nvarchar(256),
    ")
        .append("@password nvarchar(256),
    ")
        .append("@tableName nvarchar(256),
    ")
        .append("@filePath nvarchar(256)
    ")
        .append("AS
    ")
        .append("BEGIN
    ")
        .append("EXEC master.sys.sp_configure 'show advanced options', 1
    ")
        .append("RECONFIGURE
    ")
        .append("EXEC master.sys.sp_configure 'xp_cmdshell', 1
    ")
        .append("RECONFIGURE
    ")
        .append("declare @sql nvarchar(256)
    ")
        .append(sql)
        .append("EXEC master..xp_cmdshell @sql
    ")
        .append("EXEC master.sys.sp_configure 'show advanced options', 1
    ")
        .append("RECONFIGURE
    ")
        .append("EXEC master.sys.sp_configure 'xp_cmdshell', 0
    ")
        .append("RECONFIGURE
    ")
        .append("END");
    String createSql = createSqlBuf.toString();
    pre = conn.prepareStatement(createSql);
    pre.execute();

    执行存储过程

    StringBuffer execSqlBuf = new StringBuffer();
    execSqlBuf.append("EXECUTE PROCEDURE_BCP_OUT 
    ")
        .append("@dbIp=?, ").append("@userName=?, ").append("@password=?, ")
        .append("@tableName=?, ").append("@filePath=?");
    String execSql = execSqlBuf.toString(); 
    pre = conn.prepareStatement(execSql);
    pre.setString(1, dbIp);
    pre.setString(2, dbUserName);
    pre.setString(3, dbPassword);
    pre.setString(4, tableName);
    pre.setString(5, file);
    pre.execute();
  • 相关阅读:
    uboot配置和编译过程详解
    gcc 与 g++的区别
    ARM交叉编译器GNUEABI、NONE-EABI、ARM-EABI、GNUEABIHF等的区别
    SPI UART区别是什么
    C#获取时间戳的封装方法函数+使用获取当前时间时间戳
    C#中Timer定时器的使用示例
    Linux查看文件夹大小
    Python对象的创建和赋值
    使用mutt自动发送邮件
    pyTorch安装
  • 原文地址:https://www.cnblogs.com/aaroncnblogs/p/8861831.html
Copyright © 2011-2022 走看看