oracle实战技术点总结(随笔)

前言:之前一直都是用hive处理数据,因为项目变动要改为oracle+kettle
之前写的SQL在oracle上会有很多报错比如oracle 没有split 函数等
需求1:计算某个表每个月多少条占用多少空间
直接运行一下语句,该语句会算出每个表占用多少存储空间
select table_name,blocks*8192/1024/1024 size_m from user_tables
这里的blocks大小为8byte所以乘以8192
https://blog.csdn.net/haiross/article/details/39026433
计算行数
select table_name,num_rows from user_tables
这样计算的行数并不是精确值只是大概
2.oracle实现 split的用法
在这里插入图片描述
‘[^_]+’ 这里只用替换下划线为分隔符就可以了,后面两位参数,1表示从字符串的第一位开始截取,后面的x.n表示截取第几个分割符之间的数据
3.oracle 实现行列转换
主要函数 unpivot,pivot
举例列转行

select
b
,a
from t
unpivot(a for b in(c,e,d))
a,b (自定义字段名),cde 为 原列名
4.oracle 拼接字符串用 双竖线 || 就可以
第二种方式 用 concat(‘abc’,‘123’) 跟hive不同的是只支持两个参数,所以当需要加分割符的时候 concat(‘abc’,’_123’) 把分隔符和其中一个字符串相连接
在这里插入图片描述
5.因为业务需要,不同的层不同源的数据采用不同的库名,oracle只有一个库,但是可以创建多个实例,每个实例一个账号,然后给需要互通的层之间授权即可 例如ods层的表只用dw层可以访问即可
授权语句:GRANT SELECT ON ODS.TABLE TO DW;
6.DML语言,比如update,delete,insert等修改表中数据的需要commit;
7.ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
这条语句表示统计从第一条记录开始到当前行的所有记录,在计算累计值时很方便 详细用法可以看看这个博客http://blog.itpub.net/22207394/viewspace-1154123/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值