运行 SQL 使用 Shell 脚本查询并返回 CSV 格式的输出

Running SQL Queries using Shell Script and get back the output in CSV Format

我想使用 shell 脚本自动化包含多个 SQL 查询的 SQL 文件,同时在 .csv 格式文件中获取它们的输出。

还有一个问题!这些查询将有一些可变部分,即它们会改变并取决于用户输入

例如:

SELECT NAME, CITY, ADDRESS FROM DATA WHERE COUNTRY = 'USA'

这里我不希望它总是 USA.So 有没有办法在 Shell 脚本中提供国家/地区作为用户输入?

您可以尝试 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

系统会提示您输入"Country"

Enter value for Country:

然后输入内容并按 Enter。
SQL 已执行,将得到 some.csv 文件,以逗号分隔。