页面

2015年7月23日星期四

一条sql实现两个时间相减后显示天数-小时-分钟-秒


朋友遇到这样的问题,让我帮忙写的一个sql,其实很简单,贴出了供大家参考:
with minus_sec as (select
ceil((to_date('2011/02/24 10:00:00','yyyy/mm/dd hh24:mi:ss')-
to_date('2011/1/29 22:30:00','yyyy/mm/dd hh24:mi:ss'))*24*60*60) sec
from dual)    ---把两个日期相减转换成秒数,由于两个日期相减默认是天数,小于一天的用小数表示,所以为了准确转换用ceil函数取比其大的最小整数。
select
  trunc(sec/(60*60*24)) days,   ---除以1天的秒数取整就得到天数
  trunc(mod(sec,60*60*24)/(60*60)) hours,  --针对一天的秒数取模 得到的秒数就是不足一天的秒数,然后除以3600取整得到小时
  trunc(mod(sec,60*60)/60) mis,  ---针对一小时秒数取模,得到的就是不足一小时的秒数,然后除以60取整得到分钟
  mod(sec,60) sec           --针对一分钟的秒数取模,得到的是不足一分钟的秒数,得到秒
from minus_sec;

Oracle PL/SQL方法实现四舍六入五双

/*
                 "四舍六入五双" ---统计实现
名词解释:
  四舍六入五双 规则如下:
  1. 被修约的数字小于5时,该数字舍去;
  2. 被修约的数字大于5时,则进位;
  3. 被修约的数字等于5时,要看5前面的数字,若是奇数则进位,
    若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后
面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。

举例:
   9.8249=9.82, 9.82671=9.83
   9.8350=9.84, 9.8351 =9.84
   9.8250=9.82, 9.82501=9.83

四舍六入五双 在统计学方面是比四舍五如更为科学的统计方法,特别是做大量数据统计时。

2015年7月20日星期一

oracle 字符串字段分成多个字段后创建视图

/**
情景:某表有一字段为字符串类型,字段中有1~2个英文分号或者中文的分号
      现要根据该字段的分号把该字段划分为2~3个字段,并组成与表中其他字段组成视图。
     
解决方法:
      1)创建table类型,table记录类型跟视图记录类型一样,然后创建返回该table类型的方法。
         方法用于处理str字段,将其分成多个字段,然后生成table记录类型的数据,并填充table,
         最后将数据返回。
         创建视图时直接根据方法返回的table来创建视图。
        
      2)直接用select创建视图,配合case when。
个人推荐使用方法2.
**/

-----------------------------------创建例子用表------------------

create table test_3(
V_NAME VARCHAR2( 10),                       
STR    VARCHAR2(100 )
);


2015年4月5日星期日

CentOS 7 静默安装Oracle 11g

安装环境:
操作系统:  CentOS 7
oracle版本: Oracle 11g R2

一、安装前准备
   关闭selinux和防火墙:
    禁止selinux:
   
      #vi /etc/selinux/config
     把SELINUX=enforcing 改成 SELINUX=disable 保存退出
    CentOS关闭防火墙并禁止随机启动:
     systemctl stop firewalld.service#停止firewall
     systemctl disable firewalld.service#禁止firewall开机启动 
设置网络静态IP:   
   #vi /etc/sysconfig/network-script/ifcfg-enoXXXXXXXX #该处XXXX为数字,CentOS7后网卡不再使用ethX 文件为设置文件。
   改成类似以下内容:
 TYPE=Ethernet
BOOTPROTO=static  #设为静态IP
DEFROUTE=yes        #默认路由
ONBOOT=yes        #开启启动,默认开机网卡不会启动。
IPADDR=192.168.1.22   #IP地址
GATEWAY=192.168.1.1  #网关
NETMASK=255.255.255.0  #子网掩码
DNS1=202.96.128.68        #DNS1
DNS2=192.168.1.1           #DNS2

更改hostname :
   #vi /etc/hostname
   改变内容为,自己设定的hostname,如myserver等。
更改/etc/hosts文件,更改hosts文件方便:
   把127.0.0.1  localhost.domain localhost改成:
       127.0.0.1  myserver localhost.domain localhost
       192.168.1.22  myserver
用户组以及用户创建:
      创建dba用户组合oinstall用户组:
      #group add dba
      #group add oinstall
创建oracle用户:
     #useradd -g oinstall -G dba oracle
设置密码:
     #passwd oracle

2014年12月20日星期六

2014年4月6日星期日

普通机房建设

通机房建设(不含房屋建造)的内容如上图示,包含机房装修、机房配电、UPS、防雷接地、综合布线、空调、机柜、环境监控、消防、门禁等10个系统。

以下细分各个系统来说说,具体的工作。

1、机房装修:
       机房装修主要有顶棚装修、墙面装修、窗户装修、地面装修、照明系统、防火门的安装这几块构成。
       顶棚装修,有些机房需要安装天花板的(这类机房一般是下走线,也就是电缆以及网线等走地面线槽。),有些不需要安装的(此类一般为上走线,线缆走机柜上方线架。)。   无论是否有天花板,房顶都需要刷防尘漆,最好刷2~3遍,每次刷之前要等上一次的漆干后才能进行。
   

2014年4月4日星期五

VLAN 间通信的两种方式

这里介绍VLAN 间通信的两种方式:
1、单臂路由
2、三层交换机SVI

方式一:拓扑图如下:


实验中创建两个VLAN  vlan 100 名称为caiwu和vlan 200 名称为 jishu,SW1作为vtp server,具体配置如下:
SW1配置:
       VTP配置:
       SW1(config)#vtp mode server
       SW1(config)#vtp version 2
       SW1(config)#vtp domain vtp-test
       SW1(config)#vtp password 123