【发布时间】:2015-09-04 22:57:23
【问题描述】:
我收到以下错误
conn = sqlite3.connect('./mydb.db')
c = conn.cursor()
c.execute('.output ./mytable.sql')
conn.close()
c.execute('.output ./mytable.sql') sqlite3.OperationalError: near ".": 语法错误
【问题讨论】:
我收到以下错误
conn = sqlite3.connect('./mydb.db')
c = conn.cursor()
c.execute('.output ./mytable.sql')
conn.close()
c.execute('.output ./mytable.sql') sqlite3.OperationalError: near ".": 语法错误
【问题讨论】:
那是因为 .output 是命令行 sqlite 工具的命令。它不是有效的 SQL 命令。因此,当您通过库使用 sqlite 时不能使用它,只能通过命令提示符交互。
https://www.sqlite.org/cli.html 中列出的所有 shell 命令都不能工作,因为它们与 sqlite 本身完全不同。您可以将它们视为 GUI 程序的一部分——通过库访问 GUI 程序中的某些内容是没有意义的。
您要做的是自己获取数据并自己解析并以您想要的方式输出。 另一种选择是调用 sqlite shell 并传递您希望它执行的命令。比如:
sqlite3 < '.output FILE \n SELECT * FROM TABLE'
(这是未经测试的......)
【讨论】: