将SQLite3导出为CSV,文本表示为GUID / BLOB

时间:2016-10-13 08:19:31

标签: csv sqlite blob guid

我想将我的SQLite3数据库的每个表导出为CSV文件,以便使用Python进行进一步操作,之后我想将CSV文件导出为不同的数据库格式(PSQL)。 SQLite3中的ID列是GUID类型,因此当我将表作为文本导出到CSV时会出现jiberrish:

  

l_yQrGM2"○

我知道有一种方法可以将其转换为可读格式,因为Firefox的SQLite Manager插件会自动执行此操作,遗憾的是没有关于如何使用查询或使用哪种查询的参考:

  

X' 35B17880847326409E61DB91CC7B552E'

我知道QUOTE(GUID)显示了所需的十六进制字符串,但我不知道如何将其转储到CSV而不是BLOB。

1 个答案:

答案 0 :(得分:0)

我发现了我的错误 - 不是为什么它不起作用,而是我如何解决它。 所以我试图将我的表导出为https://www.sqlite.org/cli.html中的staded,即多行命令,它不起作用:

sqlite3 'path_to_db'
.headers on`
.mode csv
.output outfile.csv
SELECT statement

等等。

我正在测试一些东西,因为我在测试时很懒,我使用了单行变体,它完成了工作:

sqlite3 -header -csv 'path_to_db' "SELECT QUOTE (ID) AS Hex_ID, * FROM Table" > 'output_file.csv'

当然,如果我指定所有列名而不是使用*会更好,但这只是作为一个例子。