我在名为sql_scripts的文件夹中有n.sql文件,例如1.sql,2.sl,3.sql .... n.sql。我想使用单个shell脚本执行所有这些文件。什么是最简单和最优选的方式?
答案 0 :(得分:1)
cat 1.sql 2.sql 3.sql ... n.sql |sqlplus username/password@sid
或者
cat *.sql|sqlplus username/password@sid
答案 1 :(得分:0)
循环浏览文件,依次执行每个文件:
for file in /home/user/sql_scripts/*.sql; do
echo "Executing $f.."
sqlplus user/pass @"$f"
done
您可以使用@filename.sql
表示法在SQLPlus中运行文件。
答案 2 :(得分:0)
如上所述Josh,
在sqlplus中使用@ sqlscript.sql是最好的方法,但这种技术可能不适用于所有数据库,而是可以修改你的脚本,如
su - <db user>
connect to database <your db name >
(这又根据您的数据库而变化,即 在db2中它就像db2 connect to,在oracle connect to etc)
for file in /home/user/sql_scripts/*.sql; do
echo "Executing $f.."
db2 -tvf "$f" <db2>
@"$f" <oracle/sqlplus etc>
done
根据您的数据库和要求修改上述脚本。