
[2016年以后] oracle PLSQL开发
文章平均质量分 74
徐长亮
大数据工程师
展开
-
再聊三范式,公司的java工程师真的不了解三范式,给我们数据仓库带来很多困扰
第一范式:1.表述:列的值唯一性2.违反范式1的是另外一种含义:一个列的存放多个列的数据,不方便数据使用、修改和删除,可维护性极差第二范式:1. 表述属性完全依赖于主键:(1)必须满足第一范式 (2)必须有主键 (3)其他列必须完全依赖于主键2.违反范式2的是另外一种含义:将两个实体放在同一个表中,不方便其中一个实体数据的单独维护第三范式:1....原创 2018-12-03 15:51:52 · 561 阅读 · 2 评论 -
SQL查询结果添加行号
方法1:rownum缺点,rownum的顺序,order by之后,会发生变化方法2:序列.缺点:每次调用序列的nextval()方法之后,序列的值加一,就不能保障第二次执行sql,序列是从1开始的.推荐方法: 使用count() over() 分析函数.例子如下:select count(node_id) over(order by node_id row原创 2017-03-08 09:55:20 · 10923 阅读 · 0 评论 -
WITH AS and materialize hints .
WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能。 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使用with as来提高性能。 注意:如果 with as 短语没有被调用2次以上,CBO就不会讲这个短语获取的数据放入temp表,如果想要讲数据放入temp表转载 2016-09-26 11:48:29 · 653 阅读 · 0 评论 -
ORA-02020: too many database links in use
转载自【lonet的专栏】错误现象:ORA-02020: too many database links in useCause: The current session has exceeded the INIT.ORA open_links maximum.Action: Increase the open_links limit, or free up som转载 2016-09-26 11:14:43 · 1638 阅读 · 0 评论 -
oracle connect by及函数及生成等间隔的时间序列的方法
一、connect by 及相关函数的使用---------------------------------------------路径关系 sys_connect_by_path(parentunit_id, ', ')--connect_by_isleaf:叶子--connect_by_root:根节点--level:梯队,层级---------------------原创 2016-09-23 10:04:09 · 5641 阅读 · 0 评论 -
PLSQL:嵌套表的插入和遍历--查看详细的执行计划
declare type array_table is table of varchar2(4000 char) index by binary_integer; --定义表 lvc_array array_table; i number;begin dbms_output.enable(buffer_size => null); --防止默认2000个字节的报错 execute immed原创 2016-08-16 15:08:05 · 2342 阅读 · 0 评论 -
listagg和wmsys.wm_concat, f_concatenate_str---无内容
listagg和wmsys.wm_concat, f_concatenate_str原创 2016-07-27 15:36:40 · 868 阅读 · 0 评论 -
oracle分析函数:四、listagg和wmsys.wm_concat
/************************************** **函数:listagg **作用:列连接 **时间:2016-7-8 **内容:语法和使用案例 **************************************/ –1 语法 listagg(measure_expr,’delimiter’) within group (order_by_cl原创 2016-07-08 15:15:11 · 2427 阅读 · 0 评论 -
oracle分析函数:三、first,first_value,lag,lead函数
--1 语法1lag (value_expr,offset,default) (ignore nulls| respect nulls)over (query_partition_clause order_by_clause)--2 语法2lag (value_expr (ignore nulls| respect nulls),offset,default) over (query_partition_clause order_by_clause)原创 2016-07-08 14:31:12 · 7060 阅读 · 0 评论 -
oracle分析函数:二、秩运算(DENSE_RANK函数,RANK函数)
/************************ *标题:DENSE_RANK 函数 *时间:2016-07-07 *作者:clark **目的: 计算一组有序行组,每一个行的秩,并且返回数字; 秩:是从1开始的连续整数, –注: (1)Rank values are not skipped in the event of ties, 等级值不会跳过 Rows wi原创 2016-07-07 16:28:50 · 1030 阅读 · 0 评论 -
oracle分析函数:一、窗口子句的使用
/************************ *标题:分析函数analytic functions *时间:2016-07-07 *作者:clark *************************/ 分析函数:基于一组记录(行),计算聚合之的函数; 和集合函数的区别: (1)对于每个分组,返回多个行,而不是一个行; (2)分析的一组记录,称为窗口 (3)每一行,都有一个滑原创 2016-07-07 16:25:47 · 2189 阅读 · 0 评论 -
oracle正则表达式-for SQL&PLSQL
目录: 1.oracle正则表达式函数 2.POSIX 元字符(POSIX标准字符集) 3.oracle正则表达式的使用技巧原创 2016-07-06 17:18:21 · 2814 阅读 · 0 评论 -
ETL系列:一种遍历各个package包中过程的代码的方法
场景:数据仓库中,数据加工的存储过程,要求使用公共的框架进行分区表的分区交换,统计日期转换; 但是总有一些开发者,总是不听话,不按照要求使用公共框架的过程进行分区表的分区交换、统计日期的转换; 针对这种情况,如何通过遍历各个package中所有的存储过程的代码,找到不规范的过程呢? 针对主要的表就是user_source原创 2016-03-28 17:54:38 · 1148 阅读 · 0 评论 -
ETL系列:一种针对oracle分区表的统计信息收集策略
针对分区表,希望有这样一种收集统计信息的策略:只针对统计失效的某几个分区(或者子分区)进行统计信息收集;替代一般的策略:只要有一个分区统计信息失效,就针对所有的分区表,子分区做统计信息收集;原创 2016-03-22 14:40:46 · 1724 阅读 · 0 评论