`

awk语言与oracle数据库交互取近半年情况

阅读更多

#************************************************************************************
#*****************arpu 2009
#*****************get arpu of last 6 months from database
#*****************INPUT: arpu <month> <number_file_name> example: arpu 200905 file_name
#*****************OUTPUT:result.unl as the result file
#************************************************************************************

#获取月份段200901|200812|200811|200810
export GV_DATA_DATE=$1
export TV_DATE=`sqlplus -s "user/password@zjana" <<EOF
SET NEWPAGE NONE HEADING OFF SPACE 0 PAGESIZE 0\
TRIMOUT ON TRIMSPOOL ON LINESIZE 2500 colsep | feedback off termout off pages 0
select $GV_DATA_DATE||'|'||to_char(add_months(to_date($GV_DATA_DATE,'yyyymm'),-1),'yyyymm')||'|'||\
to_char(add_months(to_date($GV_DATA_DATE,'yyyymm'),-2),'yyyymm')||'|'||\
to_char(add_months(to_date($GV_DATA_DATE,'yyyymm'),-3),'yyyymm')||'|'||\
to_char(add_months(to_date($GV_DATA_DATE,'yyyymm'),-4),'yyyymm')||'|'||\
to_char(add_months(to_date($GV_DATA_DATE,'yyyymm'),-5),'yyyymm')||'|'\
from dual;
EOF`
export GV_2=`echo $TV_DATE|awk -F"|" '{print $2}'`
export GV_3=`echo $TV_DATE|awk -F"|" '{print $3}'`
export GV_4=`echo $TV_DATE|awk -F"|" '{print $4}'`
export GV_5=`echo $TV_DATE|awk -F"|" '{print $5}'`
export GV_6=`echo $TV_DATE|awk -F"|" '{print $6}'`

##DEBUG
echo GV_DATA_DATE=$GV_DATA_DATE
echo TV_DATE=$TV_DATE
echo GV_2=$GV_2
echo GV_6=$GV_6

## LOAD NUMBER
GV_FILE=$2
cat $GV_FILE|awk '{print substr($1,1,11)}' > wl_tmp_no.unl

sqlplus -s "user/password@zjana" <<EOF
truncate table wl_tmp_no drop storage;
EOF

sqlldr user/password@zjana control=wl_tmp_no.ctl rows=10000 bindsize=8192000 readsize=8192000 log=log_wl_tmp_no.
log bad=bad_wl_tmp_no.bad direct=true

sqlplus -s "user/password@zjana" <<EOF
SET NEWPAGE NONE HEADING OFF SPACE 0 PAGESIZE 0\
TRIMOUT ON TRIMSPOOL ON LINESIZE 2500 colsep | feedback off termout off pages 0
SPOOL result.tmp
select mobile_no,nvl(t1.n_arpu,0),nvl(t2.n_arpu,0),
nvl(t3.n_arpu,0),nvl(t4.n_arpu,0),nvl(t5.n_arpu,0),nvl(t6.n_arpu,0)||'|'
from wl_tmp_no
left outer join bo_valusr_new_$GV_DATA_DATE t1 on mobile_no=t1.vc_servnumber
left outer join bo_valusr_new_$GV_2 t2 on mobile_no=t2.vc_servnumber
left outer join bo_valusr_new_$GV_3 t3 on mobile_no=t3.vc_servnumber
left outer join bo_valusr_new_$GV_4 t4 on mobile_no=t4.vc_servnumber
left outer join bo_valusr_new_$GV_5 t5 on mobile_no=t5.vc_servnumber
left outer join bo_valusr_new_$GV_6 t6 on mobile_no=t6.vc_servnumber;
EOF

## remove null line and Elapsed
cat result.tmp|awk '{if ($1 ~/^1/) {print $0}}' > result.unl$

分享到:
评论

相关推荐

    Oracle ass.awk工具

    ass.awk工具用在数据库hang住时分析收集到的systemstate所用,可以清晰明了的查看systemstate中的信息; 命令简单: $ awk -f ass1033.awk [trace_name_file] 在系统hung的时候,systemstate基本等同于hanganalyze...

    awk语言编程使用规则

    1. awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。 2. 三种方式调用awk 1) awk [opion] 'awk_script' ...

    awk编程语言入门

    awk编程语言入门--awk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。

    awk程序设计语言

    awk程序设计语言,Linux数据的处理,工具编程,入门教程

    awk入门到精通.pdf

    (awk 指令并不多, 且其中之大部分与 C语言中之用法一致, 本手册中对该类指令之语法及特性 不再加以繁冗的说明, 读者若欲深究,可自行翻阅相关的 C 语言书籍) 2. awk概述 为什么使用awk awk 是一种程序语言. 它具有...

    AWK语言学习资料--基础知识

    日常用的AWK语言,很有用,有希望对各位有帮助。

    awk编程语言.pdf(英文版)

    awk编程语言,每位运维者必备的技术。这本书对awk的编程模型、基本语法有简单明了的介绍,在进行数据处理、文本处理、报表、试验算法方面的应用也有很多好的实例。

    GNU AWK (GAWK) 是历史悠久的 AWK 编程语言的开放源代码实现

    与 Perl(它起源于 AWK)一样,AWK 是一种解释性语言,所以 AWK 程序通常不需要进行编译。相反,在运行时将程序脚本传递给 AWK 解释器。 AWK 输入语言使用类似 C 语言的语法,这使得系统编程人员感觉到非常的方便。...

    awk学习awk学习awk学习awk学习

    awk学习awk学习awk学习awk学习awk学习awk学习awk学习

    oracle ass.awk工具

    SQL&gt; oradebug setmypid Statement processed. SQL&gt; oradebug unlimit Statement processed. SQL&gt; oradebug dump systemstate 266 ...Disconnected from Oracle Database 10g Enterprise Edition Release 1

    学习和理解AWK的最佳书籍Effective AWK Programming

    强烈建议所有想学awk的同志们阅读(会有很多awk语言之外的启迪) 偶然机会得到,不敢独享,故在此分享所得。  语言发明人写的,肯定不同寻常。因为他们对awk是最了解的,所以简明扼要却不乏深入。我们从中可以读到...

    Sed与Awk (中文版)

    awk是一种编程语言,它可以使你很容易地处理结构化数据和生成格式化报告。第二版介绍了awk的POSIX标准,同时介绍了一些可免费使用的以及商业版的awk。 本书在一开始就给出了一个概述和指南,论述了从grep到sed再到...

    The AWK Programming Language 中文版

    The AWK Programming Language (AWK 程序设计语言) 中文翻译, LaTeX 排版。 译者:wuzhouhui

    Sed与awk 中文第二版

    awk是一种编程语言,它可以使你很容易地处理结构化数据和生成格式化报告。第二版介绍了awk的posix标准,同时介绍了一些可免费使用的以及商业版的awk。 本书在一开始就给出了一个概述和指南,论述了从grep到sed再到...

    AWK用法AWK用法AWK用法

    awk ‘/101/’ file 显示文件file中包含101的匹配行。 awk ‘/101/,/105/’ file awk ‘$1 == 5′ file awk ‘$1 == “CT”‘ file 注意必须带双引号 awk ‘$1 * $2 &gt;100 ‘ file awk ‘$2 &gt;5 && $2&lt;=15' file

    AWK程序设计语言翻译

    师弟翻译的: 《AWK程序设计语言》 -Alfred V.Aho Brian W.Kernighan Peter J.Weinberger github地址:https://github.com/wuzhouhui/awk 仅供学习,欢迎交流。

Global site tag (gtag.js) - Google Analytics