概述
在实际的工作中,经常会遇到执行sql的情况。有人觉得执行sql很简单,登录服务器,sqlplus连接数据库执行就完了。但是这种情况需要我们手动去登录sqlplus,今天给大家分享的就是使用shell脚本执行sql语句,实现自动化部署。
1. 准备sql脚本
edsp_update.sql
select 'edsp_update.sql' as EDSP_EAPS_ID from dual;
alter table EC_IAM_USER modify password VARCHAR2 (180);
select password from EC_IAM_USER;
commit;
对数据库的变更记得加commit。
2. 准备shell脚本
edsp.sh
#!/bin/bash
# 日志
EDSP_DBURL=EDSP/Sump_2020 # 说明:用户名/密码
DATA_LOG=/edsp/productdata/script/update_message.log
# 执行数据库变更
# 添加sql脚本
echo "开始丸行SQL文件edsp_update: " >>$DATA_LOG
sqlplus ${EDSP_DBURL} 1>>${DATA_LOG} 2>&1 <<EOF
@edsp_update.sql;
commit;
exit;
EOF
echo "执行edsp_update.sql文件完成" >>$DATA_LOG
exit 0;
如果有多个sql脚本,往里面添加即可,会按照顺序执行。
这里是Oracle数据库,其他数据库方法类似。
目前在实际项目中已经使用,分享给大家,对自动化部署很有帮助。