精通Neo4j
上QQ阅读APP看书,第一时间看更新

2.5.2 获取CSV文件

下面介绍几种主流关系数据库导出CSV文件的方法。

2.5.2.1 SQL Server导出CSV文件

打开一个查询窗口,输入SQL语句查询出需要导出的数据列表,如图2-91所示。

图2-91 SQL查询结果

在查询的结果栏目中,复制所有查询出来的数据。右击,在弹出的快捷菜单中选择“将结果另存为”命令,如图2-92所示。

图2-92 将查询结果另存为

这里可以选择保存为CSV文件或txt文件,我们选择CSV文件,如图2-93所示,可以用Excel打开CSV文件来查看CSV文件的内容。

图2-93 保存CSV文件

2.5.2.2 MySQL导出CSV文件

MySQL支持将查询结果直接导出为CSV文本格式,在使用select语句查询数据时,在语句后面加上导出指令即可,格式如下:

● into outfile <导出的目录和文件名>:指定导出的目录和文件名。

● fields terminated by <字段间分隔符>:定义字段间的分隔符。

● optionally enclosed by <字段包围符>:定义包围字段的字符(数值型字段无效)。

● lines terminated by <行间分隔符>:定义每行的分隔符。

以下是一个使用MySQL导出CSV文件的例子。

【程序2-18】MySQL导出CSV文件

这条指令执行完后,会把mydatatable表中部分匹配查询条件的记录导出到E1.csv文件中。其中每个字段以逗号分隔,字段内容是以双引号包围的字符串,每条记录使用\r\n换行,如图2-94所示。

图2-94 CSV文件格式

2.5.2.3 Oracle导出CSV文件

可以使用sqlplus导出CSV文件,这是比较方便的一种方式,当然读者也可以考虑采用其他方式导出。首先创建spool.sql文件,内容如程序2-19所示。

【程序2-19】创建spool.sql文件

然后,运行sqlplus命令:

这样就可以从Oracle将lfc_ bl表中的数据导出到E:\lfc_ bl.csv文件了。

对于spool.sql文件的指令详细解析请参考表2-2。

表2-2 sqlplus命令及含义

2.5.2.4 CSV内容格式注意事项

Neo4j对CSV文件的格式是有要求的,因此在讨论如何导入CSV之前,我们先列举一些CSV文件内容格式常见的错误。读者可以使用文本编辑器打开自己的CSV文件,查看是否出现这些错误。

CSV文件内容格式常见错误如下:

(1)在CSV文件开始处存在BOM字节顺序标记(2个UTF-8字符),如果存在,则删除。

(2)文件内存在非文本类型的字符,如果存在,则删除。

(3)存在不规则换行符,如混合Windows和UNIX换行符,如果存在,则需要确保它们一致,最好选择UNIX风格。

(4)CSV文件头与数据不一致(内容相比头缺少列或多出列,头中有不同的分隔符),如果存在此情况,则需要修复头部。

(5)带引号和不带引号的文本字段中出现换行符,如果存在,则需要删除换行符。

(6)存在杂散的引号,非文本中存在独立双引号或单引号,如果存在,则需要转义或删除杂散引号。