记一次自动导出CVS配置始末
来源:互联网 发布:鹰朗el01正品淘宝店 编辑:程序博客网 时间:2024/04/23 16:54
一开始的shell如下:
#!/bin/bashexport NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK$ORACLE_HOME/bin/sqlplus -S username/pwd > /dev/null 2>&1 <<EOFset echo off feedback off trimspool on linesize 3000;set term off verify off feedback off pagesize 0;spool /home/oracle/expdate/xcmx$(date +%Y%m%d).csv;select site_code|| ',' || '="'||ewbs_list_no || '"'|| ',' || '="'||bill_code || '"'|| ',' || out_piece|| ',' || count(pallet_code) over(partition by site_code, ewbs_list_no, bill_code)|| ',' || '="'||pallet_code || '"'|| ',' || vol|| ',' || weight|| ',' || pieces|| ',' || pallet_user_name|| ',' || pallet_user_code from (select site_code, ewbs_list_no, bill_code, out_piece, pallet_code, pallet_user_name, pallet_user_code, sum(son_vol) vol, sum(son_weight) weight, count(sub_bill_code) pieces from t_bas_pallet where create_time >=to_date(to_char(sysdate-1,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and create_time < to_date(to_char(sysdate,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and pallet_code is not null and is_deleted = 0 and type in (1, 2) group by site_code, ewbs_list_no, bill_code, out_piece, pallet_code, pallet_user_name, pallet_user_code) order by site_code, ewbs_list_no, bill_code;spool off;spool /home/oracle/expdate/fjzymx$(date +%Y%m%d).csv;select site_code|| ',' || '="'||pallet_code || '"'|| ',' || pallet_user_name|| ',' || pallet_user_code|| ',' || '="'||pallet_time || '"'|| ',' || sort_man_name|| ',' || sort_man_code|| ',' || '="'||sort_time || '"'|| ',' || trunc((sort_time-pallet_time)*24*60,2)||'分' from(select site_code, pallet_code, pallet_user_name, pallet_user_code, pallet_time, sort_man_name, sort_man_code, sort_time, row_number() over(partition by pallet_code order by pallet_time desc) rn from t_bas_sort_jobwhere create_time >= to_date(to_char(sysdate-1,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and create_time < to_date(to_char(sysdate,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and type in (1,2) and is_deleted = 0) where rn=1 order by site_code,pallet_user_code;spool off;spool /home/oracle/expdate/xcjt$(date +%Y%m%d).csv;select site_code|| ',' || pallet_user_code|| ',' || pallet_user_name|| ',' || count(pallet_code)|| ',' || sum(directs) from (select site_code, pallet_user_code, pallet_user_name, pallet_code, count(distinct(next_site_name)) directs from fdm.t_bas_pallet where create_time >= add_months(trunc(sysdate, 'mm'),-1) and create_time < trunc(sysdate, 'mm') + 1 / 2 and pallet_code is not null and is_deleted = 0 and type in (1, 2) group by site_code, pallet_user_code, pallet_user_name, pallet_code) group by site_code, pallet_user_code, pallet_user_name order by site_code,pallet_user_code;quitEOFrm /home/oracle/expdate/xcmx$(date +%Y%m%d --date="-7 day").csvrm /home/oracle/expdate/fjzymx$(date +%Y%m%d --date="-7 day").csvrm /home/oracle/expdate/xcjt$(date +%Y%m%d --date="-7 day").csv--文件需要可执行权限
使用crontab自动执行发现只有最后的删除部分是正常执行的了的,但是SQL导出部份并没有执行,但是手动执行一切正常,该输出的文件都输出了,该删除的动作也做了。就很奇怪。在调试几次后发现每次自动执行的时间都非常块(正常手动执行需要5分钟左右),于是就在想是不是SQL段根本就没有执行或者说执行报错。
于是问公司的老司机,老司机给了我他的一段导出数据shell,如下:
#!/bin/kshexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_SID=nedb1export ORACLE_BASE=/u01export ORACLE_HOME=/u01/oracle/product/11.2.0.4/dbexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport NLS_LANG=AMERICAN_AMERICA.UTF8export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:.export DIAG=/u01/diag/rdbms/nedb/nedb1/traceLOGF=/home/oracle/exp_data/spool_`date +"%Y%m%d%H"`.logsqlplus -s username/pwd <<EOF>>$LOGFset linesize 3000;set heading off;set feedback off;set term off;set pagesize 0;set trimspool on; spool /home/oracle/exp_data/anedbmay.csvSELECT T.Ewbs_List_No/* as 交接单号*/|| ',' || n.task_no /*as 任务号*/|| ',' || d.ewb_no /*as 运单号*/|| ',' || (select s2.site_name from hs_basic_site s2 where s2.site_id = T.SITE_ID) /*as 出库网点*/|| ',' || (select s3.site_name from hs_basic_site s3 where s3.site_id = T.NEXT_SITE_ID) /*as 下一网点*/|| ',' || (select s4.site_name from hs_basic_site s4 where s4.site_id = ewb.send_site_id) /*as 寄件网点*/|| ',' || (select s5.site_name from hs_basic_site s5 where s5.site_id = s.first_center_site_id)/* as 寄件网点所属分拨*/|| ',' || ewb.calc_weight /*as 结算重量*/|| ',' || d.out_weight /*as 出站交接重量*/|| ',' || d.in_weight /*as 进站交接重量*/ FROM HS_EWBS_LIST T left join hs_ewbs_list_detail d on d.ewbs_list_no = t.ewbs_list_no left join hs_ewbs_list_no n on n.ewbs_list_no = t.ewbs_list_no left join hs_opt_ewb ewb on ewb.ewb_no = d.ewb_no left join hs_basic_site s on s.site_id = ewb.send_site_id WHERE n.task_no is not null and n.task_no <> '0' and t.created_time between to_date('2016-05-03 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2016-06-02 23:59:59','yyyy-mm-dd hh24:mi:ss');spool offexitEOF
经过对比,豁然顿悟。原来是shell的环境变量没有声明,导致sh执行的时候不认识sqlplus命令,于是修改shell,如下:#!/bin/bashexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_SID=anepridbexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport PATH=/u01/app/oracle/product/11.2.0/db_1/bin:/usr/sbin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/binexport NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBKsqlplus -S username/pwd > /dev/null 2>&1 <<EOFset echo off feedback off trimspool on linesize 3000;set term off verify off feedback off pagesize 0;spool /home/oracle/expdate/xcmx$(date +%Y%m%d).csv;select site_code|| ',' || '="'||ewbs_list_no || '"'|| ',' || '="'||bill_code || '"'|| ',' || out_piece|| ',' || count(pallet_code) over(partition by site_code, ewbs_list_no, bill_code)|| ',' || '="'||pallet_code || '"'|| ',' || vol|| ',' || weight|| ',' || pieces|| ',' || pallet_user_name|| ',' || pallet_user_code from (select site_code, ewbs_list_no, bill_code, out_piece, pallet_code, pallet_user_name, pallet_user_code, sum(son_vol) vol, sum(son_weight) weight, count(sub_bill_code) pieces from t_bas_pallet where create_time >=to_date(to_char(sysdate-1,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and create_time < to_date(to_char(sysdate,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and pallet_code is not null and is_deleted = 0 and type in (1, 2) group by site_code, ewbs_list_no, bill_code, out_piece, pallet_code, pallet_user_name, pallet_user_code) order by site_code, ewbs_list_no, bill_code;spool off;spool /home/oracle/expdate/fjzymx$(date +%Y%m%d).csv;select site_code|| ',' || '="'||pallet_code || '"'|| ',' || pallet_user_name|| ',' || pallet_user_code|| ',' || '="'||pallet_time || '"'|| ',' || sort_man_name|| ',' || sort_man_code|| ',' || '="'||sort_time || '"'|| ',' || trunc((sort_time-pallet_time)*24*60,2)||'分' from(select site_code, pallet_code, pallet_user_name, pallet_user_code, pallet_time, sort_man_name, sort_man_code, sort_time, row_number() over(partition by pallet_code order by pallet_time desc) rn from t_bas_sort_jobwhere create_time >= to_date(to_char(sysdate-1,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and create_time < to_date(to_char(sysdate,'yyyy-mm-dd')|| ' 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and type in (1,2) and is_deleted = 0) where rn=1 order by site_code,pallet_user_code;spool off;spool /home/oracle/expdate/zrjx$(date +%Y%m%d).csv;select siteCode || ',' || sortUserName || ',' || sortUserCode || ',' ||sortTime || ',' || commissionNumber from (select temp2.siteCode, temp2.sortUserName, temp2.sortUserCode, temp2.sortTime, temp2.commissionNumber + NVL(TBPU.DIFFERENCE, 0) commissionNumber from (select tbpc.site_code siteCode, tbpc.SORT_USER_NAME sortUserName, tbpc.SORT_USER_CODE sortUserCode, tbpc.SORT_TIME sortTime, tbpc.COMMISSION_NUMBER commissionNumber from t_bas_perf_count tbpc where tbpc.SORT_TIME BETWEEN TO_DATE(to_char(sysdate - 1, 'yyyy-mm-dd'), 'yyyy-mm-dd') AND TO_DATE(to_char(sysdate - 1, 'yyyy-mm-dd'), 'yyyy-mm-dd')) temp2 left join (select SITE_CODE, SORT_USER_NAME, SORT_USER_CODE, trunc(sysdate - 1, 'dd') sort_time, sum(MODIFICATION_NUMBER - COMMISSION_NUMBER) difference from t_bas_performance where SORT_TIME BETWEEN TO_DATE(to_char(sysdate - 1, 'yyyy-mm-dd') || ' 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND TO_DATE(to_char(sysdate - 1, 'yyyy-mm-dd') || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss') and modification_flag = 2 group by site_code, sort_user_code, sort_user_name, to_date(to_char(SORT_TIME, 'yyyy-MM-dd'), 'yyyy-MM-dd')) tbpu on temp2.SITECODE = tbpu.site_code and temp2.sortUserCode = tbpu.SORT_USER_CODE and temp2.sortTime = tbpu.sort_time order by temp2.siteCode, temp2.sortUserCode) zrjx;spool off;spool /home/oracle/expdate/xcjt$(date +%Y%m%d).csv;select site_code|| ',' || pallet_user_code|| ',' || pallet_user_name|| ',' || count(pallet_code)|| ',' || sum(directs) from (select site_code, pallet_user_code, pallet_user_name, pallet_code, count(distinct(next_site_name)) directs from fdm.t_bas_pallet where create_time >= add_months(trunc(sysdate, 'mm'),-1) and create_time < trunc(sysdate, 'mm') + 1 / 2 and pallet_code is not null and is_deleted = 0 and type in (1, 2) group by site_code, pallet_user_code, pallet_user_name, pallet_code) group by site_code, pallet_user_code, pallet_user_name order by site_code,pallet_user_code;spool off;quitEOFrm /home/oracle/expdate/xcmx$(date +%Y%m%d --date="-7 day").csvrm /home/oracle/expdate/fjzymx$(date +%Y%m%d --date="-7 day").csvrm /home/oracle/expdate/xcjt$(date +%Y%m%d --date="-7 day").csvrm /home/oracle/expdate/zrjx$(date +%Y%m%d --date="-7 day").csv再次测试,一切正常了。
参考:http://blog.itpub.net/519536/viewspace-621602
阅读全文
0 0
- 记一次自动导出CVS配置始末
- 记一次服务器被攻击始末
- 一次IBM X3650 m3系统故障的始末
- CVS配置
- CVS配置
- CVS配置
- !cvs配置
- cvs 配置
- CVS 配置
- cvs 配置
- CVS配置
- DataTable导出为cvs
- CVS文件导入导出
- CVS导出项目
- 自定义cvs简易导出
- 转载 : WRK安装与配置始末
- CVS 自动备份解决方案
- CVS自动登录
- Charge Flow in sbl1
- 天池数据挖掘比赛技术与套路总结
- wireshark过滤使用
- golang时间格式化
- 什么U盘启动盘制作工具是纯净版的,没有捆绑软件和广告的?
- 记一次自动导出CVS配置始末
- 网络抓包命令 Tcpdump的详细用法
- css学习笔记-动画
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- 程序猿们_一二三四线城市你更愿意选择去哪里工作?
- spring boot 基础日志配置
- 通用itemview
- 设置linux下heartbeat服务开机启动
- html知识点总结