【问题标题】:Linux SQL Server query with dynamic data?Linux SQL Server 查询动态数据?
【发布时间】:2014-02-01 17:28:54
【问题描述】:

我正在尝试从 shell 脚本运行查询

SELECT count(*) FROM MyTable where sessionid = 123

我能做到:

bsqldb -U myname -P mypass -S myserv -i getcount.sql

但这意味着 sessionid 被硬编码为 123

我需要从调用 bsqldb 注释的 shell 脚本中提取 sessionid

如何将 sessionid 作为变量传递?

【问题讨论】:

  • 我想我可以将查询写入 tmp 文件并将该文件传入
  • 你不能直接echo SELECT count(*) FROM MyTable where sessionid = 123 | bsqldb -U myname -P mypass -S myserv 吗?
  • bsqldb 不接受内联查询。它们必须来自输入文件

标签: sql-server database bash dynamic


【解决方案1】:
echo "SELECT ${foo} FROM ${bar}" | bsqldb -U myname -P mypass -S myserv -i -

但请注意 SQL 注入。

【讨论】:

    【解决方案2】:

    似乎最好的方法是从 bash 脚本本身创建一个 tmp.sql 文件并将其用作我的输入:

    echo "SELECT * FROM $TABLE WHERE SessionID = $SESS_ID" > tmp.sql
    result=$(bsqldb -U $USER -S $SERV -P $PASS -i tmp.sql -q)
    rm -f tmp.sql
    

    谢谢大家!

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多