首页 技术 正文
技术 2022年11月19日
0 收藏 448 点赞 2,591 浏览 1437 个字

有时候我们需要将SQL SERVER的数据一次性导入到ORACLE中,对于数据量大的表。我一般习惯先从SQL SERVER导出特殊格式的平面文件(CSV或TXT),然后用SQL*Loader装载数据到ORACLE数据库。 有时候由于一些特殊数据,我们需要导出一些特殊格式的文件,例如:

1:导出的平面文件,字段分隔符不要用逗号, 而使用其它分隔符,例如 | 或 &等

2:我们需要一些我们需要导出的CSV格式的文件,每个字段都用双引号“”括起来

1:导出的平面文件,字段分隔符不要用逗号, 而使用其它分隔符,例如 | 或 &等

我们先看问题1吧,例如,我们需要导出sys.objects下所有对象,在查询结果中选中所有对象,然后单击右键,选择”Save Results As”时有可以保持为CSV、TXT或其它文件格式, 此时默认的分隔符都为逗号,如果我想用|或&等特殊字符来分隔字段,怎么处理呢?

 

方法1:

在SSMS的“工具”->”选项“->”查询结果”(Query Results)->”SQL SERVER”->”Results to Text” 下选项Custom delimiter选项,我们选择|作为分隔符(遗憾的是分隔符似乎只能用一个字符,我想要@#$这样的分隔符无法实现)

然后在菜单栏上点击“Results to File”, 点击执行语句就会将结果保存到文本文件或CSV文件中,此时你去查看导出结果,就会发现分隔符为“|”了。  注意,如果你使用“Save Results As” 导出文本文件或CSV格式文件,你会发现永远都是逗号为分隔符。

这种方式还有一个最遗憾的就是不能将字段值用双引号括起来。不像PL/SQL Developer这样的工具可以实现这样的功能

 

方法2:

借助bcp参数-t指定字符分割符,默认是”\t”。

bcp "SELECT * FROM sys.tables;" QUERYOUT "E:\test.csv" -c  -t "|" -q -T -S localhost

方法3:

使用SQL将各个字段拼接起来。

方法4:

C#程序实现,当然是相当麻烦,如果愿意痛苦一次,方便以后,这种方法也是可行的。

2:我们需要导出的CSV格式的文件,每个字段都用双引号“”括起来

 

这个是否无法借助SSMS客户端工具的配置来完成,我倒是有几个方法间接来实现,不过都有些麻烦

1: SQL语句拼接,然后选择所有结果,导出为csv格式。

SELECT  '"' + COLUMNS1 + '"' ,

        '"' + COLUMNS2 + '"' ,

        '"' + COLUMNS3 + '"' ,

        '"' + COLUMNS4 + '"' ,

        '"' + COLUMNS5 + '"' ,

        '"' + COLUMNS6 + '"' ,

        '"' + COLUMNS7 + '"' ,

        '"' + COLUMNS8 + '"' ,

        '"' + COLUMNS9 + '"'

FROM    dbo.TABLE_NAME;

2:借助bcp工具的参数-t指定字符分割符,默认是”\t”。

bcp “SELECT * FROM sys.tables;” QUERYOUT “E:\test.csv” -c  -t “\”,\”” -q -T -S localhost

这种方法导出的文件,第一个字段和最后一个字段都没有的双引号都不全,如果你熟悉UltraEdit,那么你可以很快的用列模式和替换方式补全。另外就是在SQL语句里面分别给第一个字段前面后最后一个字段后面添加双引号解决问题。

3:C#代码实现。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896