使用 Shell 脚本运行 SQL 查询并返回 CSV 格式的输出
Posted
技术标签:
【中文标题】使用 Shell 脚本运行 SQL 查询并返回 CSV 格式的输出【英文标题】:Running SQL Queries using Shell Script and get back the output in CSV Format 【发布时间】:2020-04-23 21:03:26 【问题描述】:我想使用 shell 脚本自动化包含多个 SQL 查询的 SQL 文件,同时以 .csv 格式文件获取它们的输出。
还有一个问题!这些查询将有一些可变部分,即它们会改变并取决于用户输入
例如:
SELECT NAME, CITY, ADDRESS FROM DATA WHERE COUNTRY = 'USA'
这里我不希望它总是美国。那么有没有一种方法可以提供 COUNTRY 作为 Shell 脚本中的用户输入?
【问题讨论】:
你使用的是什么 SQL 服务器? @Mark Hi,它的 Oracle SQL Server 【参考方案1】:您可以尝试使用 Oracle SQL*Plus 替换变量。
这样的SQL脚本“demo.sql”
SPOOL some.csv APPEND
set colsep ','
SELECT NAME, CITY, ADDRESS FROM DATA WHERE COUNTRY = '&Country';
SPOOL OFF
然后像这样运行脚本
sqlplus -S username/pass @demo.sql
系统会提示您输入“国家/地区”
Enter value for Country:
然后输入一些内容并按 Enter。 SQL 已执行,将得到一些用逗号分隔的 .csv 文件。
【讨论】:
谢谢!会试试这个,让你知道以上是关于使用 Shell 脚本运行 SQL 查询并返回 CSV 格式的输出的主要内容,如果未能解决你的问题,请参考以下文章
如何在 shell 脚本中运行 SQL 查询时获得类似 SQLPLUS 的输出
shell脚本调JAVA程序,获取JAVA程序返回值并echo输出