2017-08-01 117 views
0

我想用shell脚本下面的SQL查询壳牌和MySQL

SELECT min(UM.USER_ID) USER_ID, min(UM.USER_NAME) USER_NAME, min(UM.USER_EMAIL) USER_EMAIL, min(UM.USER_STATUS) USER_STATUS 
FROM CDR_ETHICON.USER_ROLE_MAP URM INNER JOIN USER_MASTER UM ON URM.USER_ID = UM.USER_ID 
GROUP BY UM.USER_ID HAVING COUNT(UM.USER_ID) > 1 

欲了解更多信息,生成excel文件,我已经在Oracle SQL Developer中版本1.5.1.54.40安装在UNIX服务器

现在来自UNIX服务器,我想发起这个SQL查询,并希望以excel格式输出,这样我就可以自动完成并通过邮件发送。

回答

0

你需要写一个shell脚本,执行以下操作:

  1. 调用的MySQL(使用SELECT...INTO生成CSV格式输出)执行查询和输出重定向到一个文本文件(比如说,output.csv
  2. 打开您的邮件程序发送output.csv文件

使用cron在您需要的时间间隔运行整个事情。

0

把下面的shell脚本并运行:

mysql -uusername -ppassword -Ddatabase <<EOF 
SELECT min(UM.USER_ID) USER_ID, min(UM.USER_NAME) USER_NAME, min(UM.USER_EMAIL) USER_EMAIL, min(UM.USER_STATUS) USER_STATUS 
FROM CDR_ETHICON.USER_ROLE_MAP URM INNER JOIN USER_MASTER UM ON URM.USER_ID = UM.USER_ID 
GROUP BY UM.USER_ID HAVING COUNT(UM.USER_ID) > 1 
into outfile 'youfilename.csv' 
fields terminated by ',' 
enclosed by '"' 
lines terminated by '\n'; 
EOF