如何在bash脚本中执行SQL?

Aar*_*ron 15 sql oracle bash plsql sqlplus

我有一些SQL脚本,我正在尝试自动化.在过去,我使用过SQL*Plus,并从bash脚本手动调用sqlplus二进制文件.

但是,我试图弄清楚是否有一种连接到数据库的方法,并从bash脚本内部调用脚本...这样我就可以插入date并使查询运行相对于特定天数过去.

RC.*_*RC. 20

我有点困惑.您应该能够在bash脚本中调用sqlplus.这可能就是你在第一次发表声明时所做的

尝试在bash脚本中执行以下命令:

#!/bin/bash          
echo Start Executing SQL commands
sqlplus <user>/<password> @file-with-sql-1.sql
sqlplus <user>/<password> @file-with-sql-2.sql
Run Code Online (Sandbox Code Playgroud)

如果您希望能够将数据传递到脚本中,可以通过将参数传递到脚本中来通过SQLPlus执行此操作:

内容文件与-SQL 1.SQL

 select * from users where username='&1';
Run Code Online (Sandbox Code Playgroud)

然后更改bash脚本以调用sqlplus传入值

#!/bin/bash

MY_USER=bob
sqlplus <user>/<password> @file-with-sql-1.sql $MY_USER
Run Code Online (Sandbox Code Playgroud)


xdh*_*ore 8

您还可以使用"此处文档"执行相同的操作:

VARIABLE=SOMEVALUE

sqlplus connectioninfo << HERE
start file1.sql
start file2.sql $VARIABLE
quit
HERE
Run Code Online (Sandbox Code Playgroud)