使用 GUID/BLOB 的文本表示形式将 SQLite3 导出为 CSV
Export SQLite3 to CSV with text representation of GUID/BLOB
我想将我的 SQLite3 数据库的每个 table 导出到 CSV 文件,以便使用 Python 进行进一步操作,然后我想将 CSV 文件导出为不同的数据库格式 (PSQL) . SQLite3 中的 ID 列是 GUID 类型,因此当我将 tables 作为文本导出到 CSV 时会出现错误:
l_yQ��rG�M�2�"�o
我知道有一种方法可以将其转换为可读格式,因为 Firefox 的 SQLite 管理器插件会自动执行此操作,遗憾的是没有关于如何使用或使用哪个查询的参考:
X'35B17880847326409E61DB91CC7B552E'
我知道 QUOTE (GUID) 显示所需的十六进制字符串,但我不知道如何将它转储到 CSV 而不是 BLOB。
我发现了我的错误所在 - 不是为什么它不起作用,而是我如何解决它。
因此,我尝试将我的表格导出为 https://www.sqlite.org/cli.html 中的表格,即多行命令,但没有用:
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'
当然,如果我指定所有列名而不是使用 * 会更好,但这足以作为示例。
我想将我的 SQLite3 数据库的每个 table 导出到 CSV 文件,以便使用 Python 进行进一步操作,然后我想将 CSV 文件导出为不同的数据库格式 (PSQL) . SQLite3 中的 ID 列是 GUID 类型,因此当我将 tables 作为文本导出到 CSV 时会出现错误:
l_yQ��rG�M�2�"�o
我知道有一种方法可以将其转换为可读格式,因为 Firefox 的 SQLite 管理器插件会自动执行此操作,遗憾的是没有关于如何使用或使用哪个查询的参考:
X'35B17880847326409E61DB91CC7B552E'
我知道 QUOTE (GUID) 显示所需的十六进制字符串,但我不知道如何将它转储到 CSV 而不是 BLOB。
我发现了我的错误所在 - 不是为什么它不起作用,而是我如何解决它。 因此,我尝试将我的表格导出为 https://www.sqlite.org/cli.html 中的表格,即多行命令,但没有用:
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'
当然,如果我指定所有列名而不是使用 * 会更好,但这足以作为示例。