sqlite 如何使用PowerShell导入CSV文件?

o3imoua4  于 2022-11-24  发布在  SQLite
关注(0)|答案(3)|浏览(203)

我想使用PowerShell脚本将CSV文件(用双引号分隔的逗号)导入SQLite。我尝试:

echo ".import export.csv mytable" | sqlite3.exe

我得到这个错误:
导出.csv:327:未转义“字符
我在所有行上都得到这个错误。在SQLite的命令行shell上,同样的命令可以工作:

sqlite > .import export.csv mytable

如何使用PowerShell脚本使此命令生效?

iswrvxsc

iswrvxsc1#

这对我在PowerShell 5.1和v7.0中都有效。

$params = @"
.mode csv
.separator ,
.import export.csv mytable
"@

$params | .\sqlite3.exe mydatabase.db
lnxxn5zx

lnxxn5zx2#

以下单个命令行在两种环境中都有效

  • cmd.exe(版本10.0.x.x通过ver实现)和
  • powershell.exe(版本5.1.x.x通过$PSVersionTable实现)
.\sqlite3.exe my.db ".import file1.csv table1 --csv"

这会将csv文件file1.csv的内容加载到sqlite数据库文件my.db中的表table1中。--csv标志将导入该文件并根据该文件中的标题列名称创建表结构,并大致推断数据类型。
您可以通过这种方式导入多个文件,例如

.\sqlite3.exe my.db ".import file1.csv table1 --csv" ".import file2.csv table2 --csv"

您可以通过追加; .\sqlite3.exe my.db将命令链接在一起,以便立即打开数据库进行查询。
也就是说

.\sqlite3.exe my.db ".import file1.csv table1 --csv" ".import file2.csv table2 --csv; .\sqlite3.exe my.db"
z9smfwbn

z9smfwbn3#

那么sqlite3.exe“导入导出.csv mytable”又是怎么回事呢?
您可以查看sqlite3.exe的文档,了解如何在不在其shell中使用sqlite3.exe,以及如何将参数传递给sqlite3.exe。
您可以尝试以下行

Invoke-Expression 'sqlite3 yourdatabase.db < ".import export.csv mytable"'

相关问题