当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

工作小脚本(原创)

发表于: 2013-06-16   作者:czmmiao   来源:转载   浏览次数:
摘要:  新公司需要写pl\sql,日常编码过程中,一些简单而重复的操作耗费了不少时间,由于公司不能向外提交数据,电脑又禁用usb,所以只能通过博客这个中转站获取在家里准备写好的脚本。下面的代码我就不详细解释了,有同样需求的朋友自己研究下,不明白或者有需要改进的地方欢迎发邮件。 字段匹配 $ cat tt1  Name         &n

 新公司需要写pl\sql,日常编码过程中,一些简单而重复的操作耗费了不少时间,由于公司不能向外提交数据,电脑又禁用usb,所以只能通过博客这个中转站获取在家里准备写好的脚本。下面的代码我就不详细解释了,有同样需求的朋友自己研究下,不明白或者有需要改进的地方欢迎发邮件。

字段匹配

$ cat tt1

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 DEPTNO                                    NOT NULL NUMBER(2)

 DNAME                                              VARCHAR2(14)

 LOC                                                VARCHAR2(13)

$ cat tt2

DNAME                             ssss 

$ cat to_verify 

#!/bin/bash

export PATH=/u01/app/oracle/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin

cat /dev/null > result

sed -e '1,3d' -e 's/NOT NULL//g' $1 > tmp1

awk '{if(!s[NR])s[NR]=$1;if(FNR>x)x=NR;a[$1]=$2}END{for(i=1;i<=x;i++)print s[i],a[s[i]]}' tmp1 $2 > result

rm tmp1

$ ./to_verify tt1 tt2

$ cat result 

DEPTNO NUMBER(2)

DNAME ssss

LOC VARCHAR2(13)

利用CAST进行类型转换

$ cat to_cast 

#!/bin/bash

export PATH=/u01/app/oracle/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin

cat /dev/null > result

sed -e 's/NOT NULL//g'  -e "s/^ \([A-Z_]*[A-Z]\).*(\([0-9]*\))/CAST(NVL(\1,' ') AS CHAR(\2))/g" -e "s/ \([A-Z_]*[A-Z]\).*DATE/TO_DATE(\1,'YYYY-MM-DD')/g" $1 > result

echo "#################################EXAMPLE###############################" >> result

echo "cast(nvl(max(sal),'1') as char(23))"  >> result

echo "cast(nvl(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),' ') as char(23))" >> result

echo "########################################################################" >> result

$ ./to_cast tt1

$ cat result 

CAST(NVL(DEPTNO,' ') AS CHAR(2))

CAST(NVL(DNAME,' ') AS CHAR(14))

CAST(NVL(LOC,' ') AS CHAR(13))

#################################EXAMPLE###############################

cast(nvl(max(sal),'1') as char(23))

cast(nvl(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),' ') as char(23))

#######################################################################

 

..................................持续更新中....................................

 

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

工作小脚本(原创)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
【15.7.4. MySQL Proxy Scripting】 (下面这些章节可以参考后面的译文) 15.7.4.1. Proxy Scriptin
原文 http://www.cnblogs.com/JamesLi2015/archive/2013/05/23/3094294.html 工作中遇到的问题,经
工作中遇到的问题,经常会在网络上搜集一些相关的内容,以此扩展以解决相同性质的问题,StackOverfl
原帖地址:http://www.cnblogs.com/JamesLi2015/archive/2013/05/23/3094294.html 工作中遇到的问题
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
(一) :如何在js文件里面切换一个新的mongo库? 我们都知道,使用下面的命令可以执行一个js脚本里
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号