当前位置: 首页 > news >正文

【sqlserver】mssql 批量加载数据文件 bulk copy使用

参考文章:

Using bulk copy with the JDBC driver
SqlServer数据批量写入
SqlServer批量插入数据方法–SqlBulkCopy

sqlserver buld copy需要提供,数据文件的对应表的元数据信息主要的字段的位置、字段的名称、字段的数据类型。
执行bulk load时候不一定要在sqlserver所在机器执行,即使sqlserver服务在docker里也能执行。
SQLServerBulkCSVFileRecord需要的列元数据类型就是java.sql.JDBCType里的类型,通过java.sql.JDBCType.getVendorTypeNumber方法获取到int值。

本例文件格式:textfile,字段分隔符(delimiter)‘|’

代码,kotlin格式

import java.sql.JDBCType
import com.microsoft.sqlserver.jdbc.*
import java.sql.DriverManager
import java.sql.SQLException
import java.sql.Statement
import java.sql.Connectionval database ="db"val schema = "sc"val record: SQLServerBulkCSVFileRecord = SQLServerBulkCSVFileRecord("path of the data file", "utf-8", "delimiter", "firstLineIsColumnNames")destTblName = "${schema}.${table}"// 注意要添加所有字段的元数据信息。record.addColumnMetadata(               "position of this field: start from 1","field name","jdbc type","precision: char/varchar length or decimal precision,date etc fill with 0","scale: decimal scale","dateTimeFormatter")val connectionUrl ="jdbc:sqlserver://${host}:${port};encrypt=false;databaseName=${database}"DriverManager.getConnection(connectionUrl, "username", "password").use{conn ->conn.createStatement().use { stmt ->SQLServerBulkCopy(conn).use { bulkCopy ->// delete before bulk load!// stmt.executeUpdate("DELETE FROM ${tpc.name}")bulkCopy.destinationTableName = destTblName // colMapSupplier.forEach{(k,v)-> bulkCopy.addColumnMapping(k,v)}// Write from the source to the destination.bulkCopy.writeToServer(record)}}}
http://www.lryc.cn/news/498416.html

相关文章:

  • flinkSql中累计窗口CUMULATE
  • 关于在ubuntu上无法运行EasyConnect的解决方法
  • 【Axure高保真原型】数值条件分组
  • python学习——字符串的拼接操作
  • 多线程篇-8--线程安全(死锁,常用保障安全的方法,安全容器,原子类,Fork/Join框架等)
  • el-select的搜索功能
  • MFC实现全屏功能
  • 网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)
  • v-model 根据后端接口返回的数据动态地确定要绑定的变量
  • 图形开发基础之在WinForms中使用OpenTK.GLControl进行图形绘制
  • 离散数学重点复习
  • Javaweb梳理21——Servlet
  • 推荐学习笔记:矩阵补充和矩阵分解
  • etcd分布式存储系统快速入门指南
  • 解决VUE3 Vite打包后动态图片资源不显示问题
  • 大数据新视界 -- 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)
  • Android学习14--charger
  • 页面开发样式和布局入门:Vite + Vue 3 + Less
  • 瑞芯微RK3566/RK3568开发板安卓11固件ROOT教程,Purple Pi OH演示
  • Netty 入门应用:结合 Redis 实现服务器通信
  • 试题转excel;pdf转excel;试卷转Excel,word试题转excel
  • 查看网卡设备Bus号
  • 鸿蒙Next星河版高级用例之网络请求和自适应布局以及响应式布局
  • 鸿蒙技术分享:敲鸿蒙木鱼,积____功德——鸿蒙元服务开发:从入门到放弃(3)...
  • Hadoop生态圈框架部署 伪集群版(六)- MySQL安装配置
  • 【Docker】创建Docker并部署Web站点
  • 实验七 用 MATLAB 设计 FIR 数字滤波器
  • 学习ESP32开发板安装鸿蒙操作系统(新板子esp32c3不支持)
  • asp.net core过滤器应用
  • 力扣面试题 31 - 特定深度节点链表 C语言解法