概述

在实际的工作中,经常会遇到执行sql的情况。有人觉得执行sql很简单,登录服务器,sqlplus连接数据库执行就完了。但是这种情况需要我们手动去登录sqlplus,今天给大家分享的就是使用shell脚本执行sql语句,实现自动化部署。

shell脚本执行mysql打印日志 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数据库,其他数据库方法类似。

目前在实际项目中已经使用,分享给大家,对自动化部署很有帮助。