缺乏导入数据权限,SQL Server创建测试数据

在仅有查询和创建临时表权限的SQL Server环境中,通过Linux Shell处理Excel数据,转换成INSERT语句批量插入临时表。本文详细介绍了从数据预处理、文本分隔到SQL语句构建的步骤,提供了一种无导入权限情况下的数据测试方案。
摘要由CSDN通过智能技术生成

环境

SQL Server 2012 + CentOS 6.3

 

问题描述

只具有生产库的登录、查询、创建临时表权限,缺失导入数据(比如Excel文件、txt文档、sql脚本等等)权限,需要创建临时表,插入测试数据。

 

问题模拟

由于生产库的数据是敏感数据,并且数据量非常大,当然不能提供出来。这里只是对这个问题进行一个模拟。数据量少和数据量大操作方法是一样的。

 

问题解决

我们可以这样:

 

这是Excel中的源数据,如图1:

 

图1 Excel 源数据

Step 1,首先把源数据(Excel中的数据)拷贝出来,或者另存为csv文件(以逗号作为分隔),然后重命名后缀为txt。这里的文件名假设为source.txt,然后把行首标题去掉;

6789,Robin,朱二,成都
1234,justdb,张三,泸州
4567,HelloWorld,李四,广州
5678,CSDN Blog,王五,中山
1331,Wen,邓六,深圳
3142,Wentasy,徐七,长沙
4131,Fantasy,燕八,昆明

 

Step 2,源数据准备好了,那现在我们切换到Linux环境下开始对数据进行处理。观察源数据中有四列数据,那么我们需要分隔数据。这里采用awk处理。代码如下:

#-F表示以逗号作为分隔,把源数据中的每列分别保存为新的四个文件
awk -F","'{print $1}' source.txt > source1.txt
awk -F","'{print $2}' source.txt > source2.txt
awk -F","'{print $3}' source.txt > source3.txt
awk -F","'{print $4}' source.txt > source4.txt


源数据如下:

[root@robin opt]# cat source.txt

1234,justdb,张三,泸州
4567,HelloWorld,李四,广州
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值