繁体   English   中英

如何在 SQLite3 查询中包含环境变量

[英]How to include enviroment variables in SQLite3 query

我正在编写一个批处理文件来从多个 SQLite3 数据库中提取数据。 我需要设置 2 个系统环境变量,然后在我的 SELECT 语句中使用它们两个环境变量。因为这将针对具有相同架构但针对不同站点位置的多个数据库运行。 目前有 14 个不同的地点。 到目前为止我想出的是我的主要 queryrun.bat 文件:

@echo off
setx /m DateStart '20200101'
setx /m DateEnd '20200103'
sqlite3 SiteID40.db < query40.dat
TIMEOUT /t 3
sqlite3 SiteID41.db < query41.dat

然后 query#.dat 文件如下所示:

.mode list
.separator ,
.output results40.csv
SELECT * FROM FilesActive WHERE CompactDate >= %DateStart% and CompactDate <= %DateEnd%;
.quit

%DateStart% 和 %DateEnd% 是我想要插入同名系统变量的地方。 我曾尝试使用 $DateStart 和 %DateStart% 都没有运气。

任何建设性的帮助表示赞赏。 我必须重新RE-ITERATE尽管这是SQLite3不是 MS SQL Server 或 mySQL。

在 sqlite 中使用 .param 命令,这样的事情应该可以工作:

将 .bat 调用从sqlite3 SiteID40.db < query40.dat

sqlite3 SiteID40.db ".param set :DateStart %DateStart%" ".param set :DateEnd %DateEnd%" ".read query.dat"

将 query#.dat 文件 SELECTs 更改为:

SELECT * FROM FilesActive WHERE CompactDate >= :DateStart and CompactDate <= :DateEnd;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM