
oracle
修行者 坚守者
Stay hungry Stay foolish
展开
-
浅析非事实型事实表
浅析非事实型事实表在维度建模的数据仓库中,有一种事实表叫Factless Fact Table,中文一般翻译为“非事实型事实表”。在事实表中,通常会保存十个左右的维度外键和多个度量事实,度量事实是事实表的关键所在。在非事实型事实表中没有这些度量事实,只有多个维度外键。非事实型事实表通常用来跟踪一些事件或者说明某些活动的范围。下面举例来进行说明。第一类非事实型事实表是用来跟踪事件转载 2016-01-26 14:06:14 · 936 阅读 · 0 评论 -
数据集市和数据仓库的区别
转: http://book.51cto.com/art/201205/338217.htm转载 2016-01-26 09:52:46 · 799 阅读 · 0 评论 -
数据仓库和数据集市的区别与联系
转:http://blog.youkuaiyun.com/vertour/article/details/8508148上海复旦德门软件有限公司朱建秋博士 企业从事数据仓库项目时,往往会遇到多个数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时会向企业灌输许多概念,其中,数据仓库和数据集市是最常见的。由于术语定义不统一,另外各个供应商销售策略不一样,往往会给企业带来很大的混转载 2016-01-25 15:09:37 · 2318 阅读 · 0 评论 -
范式应用实例
数据库三范式:第一范式:不可再分;第二范式:每一个表只有一种事务的数据;第三范式:每一个列都和主键直接相关,不存在传递性依赖;范式应用实例下面以一个学校的学生系统为例分析说明,这几个范式的应用。第一范式(1NF)数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。转载 2016-01-19 10:19:22 · 592 阅读 · 0 评论 -
数据库设计三大范式简析
数据库设计三大范式简析这篇文章主要介绍了数据库设计三大范式简析,遵循范式是为了建立冗余较小、结构合理的数据库,需要学习数据库设计三大范式的朋友可以参考下为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。转载 2016-01-19 10:15:50 · 308 阅读 · 0 评论 -
数据库 三范式最简单最易记的解释
数据库 三范式最简单最易记的解释书上讲了好多, 归结起来3句话: 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; 不符合第一范式的例子(关系数据库中cre转载 2016-01-19 10:04:56 · 237 阅读 · 0 评论 -
关于oracle的em界面打开后,在命令行查看status状态却起不来
查看oracle->sysman->log->emoms.log可知 jdbc.ConnectionCache _getConnection.353 - Got a fatal exeption when getting a connection; Error code = 1033; Cleaning up cache and retrying ERROR eml.OMSH原创 2016-01-12 09:40:28 · 4134 阅读 · 0 评论 -
表空间和表分区的理解
1.表空间:是一个或多个数据文件的集合,主要存放的是表,所有的数据对象都存放在指定的表空间中;一个数据文件只能属于一个表空间,一个数据库空间由若干个表空间组成,其中包括:a.系统表空间:10g以前,默认系统表空间是System,10g包括10g以后,默认系统表空间是User,存放数据字典和视图以及数据库结构等重要系统数据信息。b.Temp表空间:临时表空间,安装数据库时创建。c.用转载 2015-11-03 16:34:07 · 5525 阅读 · 0 评论 -
Oracle错误处理机制
Oracle异常处理概念 5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4 用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明部分引发异常错误5.3 异常错误处理编程5.4 在 PL/SQL 中使用转载 2015-11-16 08:48:27 · 1574 阅读 · 0 评论 -
oracle正则表达式函数 substr instr简单分析
substr和instr的用法declare t varchar2(200); pos integer; i integer; num integer := 0; begin t := '192.1681.200;10.2.3.12;10.3.123.10;45.6,54.2;32.8,163.5;' ; select length(t)-length(repl转载 2015-11-16 14:47:26 · 702 阅读 · 0 评论 -
group by rollup
今天接触到了group by后带rollup子句的用法(真是丑死人了,接触ORACLE一两年了今天才知道还有这样一个用法),group by后带rollup子句这个子句所产生的功能实在是太高级了,见了就高兴。但学习完后感觉也没什么的,很简单的。 下面按我的理解简单总结一下: 一、如何理解group by后带rollup子句所产生的效果 grou转载 2015-11-16 15:20:52 · 438 阅读 · 0 评论 -
【CUBE】Oracle分组函数之CUBE魅力
Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手。 关于ROLLUP的查询统计功能请参考文章《【ROLLUP】Oracle分组函数之ROLLUP魅力》(http://space.itpub.net/519536/viewspace-610995)。1.先看一下ROLLUP的数据统计效果1)创建测试表group_testSECOOLER@ora1转载 2015-11-16 15:23:47 · 499 阅读 · 0 评论 -
update 多列更新
drop table test; create table test (q1 varchar2(200), q2 varchar2(200), q3 varchar2(200) );insert into test(q1,q2,q3) values('1','3','1');insert into test转载 2015-11-17 08:34:04 · 1892 阅读 · 0 评论 -
"ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.
"ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息 ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上 其他用户创建的对象但该用户有权访问的信息 DBA_*:有关整个数据库中对象的信息 (这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。转载 2015-11-17 20:54:48 · 894 阅读 · 0 评论 -
Merge_into的使用详解
Merge是一个非常有用的功能,类似于Mysql里的insert intoon duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表转载 2015-11-19 09:33:58 · 462 阅读 · 0 评论 -
insert all/first 使用与区别简介
insert all与insert first多表插入数据需要注意和说明的地方: 一、针对insert all 只能对表执行多表插入语句,不能对视图或物化视图执行; 不能对远端表执行多表插入语句; 不能使用表集合表达式; 不能超过999个目标列; 在RAC环境中或目标表是索引组织表或目标表上建有BITMAP索引时,多表插入语句不能并行执行; 多表插入语句不支持执行计划稳转载 2015-11-19 10:07:54 · 408 阅读 · 0 评论 -
Merge into的注意点之ORA-30926: 无法在源表中获得一组稳定的行?
大家可以看看:http://blog.sina.com.cn/s/blog_5d25646e0100qu17.html的内容,然后我再补充一点:新建两张table :test_source和test_target,他们的数据分别如下: SQL> select * from test_source;NAME ID-转载 2015-11-19 14:46:49 · 2292 阅读 · 0 评论 -
oracle sql 去重复记录不用distinct如何实现
oracle sql 去重复记录不用distinct如何实现本文将详细介绍oracle sql 去重复记录不用distinct如何实现,需要了解的朋友可以参考下用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 。 select distinct name from转载 2016-01-12 13:10:52 · 1510 阅读 · 0 评论 -
oracle学习入门系列之五内存结构、数据库结构、进程
oracle学习入门系列之五内存结构、数据库结构、进程1 Oracle数据库结构关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大师们的讲稿。但是我们不去管那些,按照我们自己节奏记出特性、记出精彩来。首先插入本系列第一张图片,图一(绝对来自官网),看蛤蟆对于图片使用是多么小心的,如果大伙对这个图已有自己独到的理解,那么可直接跳过本篇笔记吧,当然温故而知新转载 2015-12-01 18:18:52 · 305 阅读 · 0 评论 -
Oracle内连接、外连接、右外连接、全外连接小总结
数据库版本:Oracle 9i表TESTA,TESTB,TESTC,各有A, B两列AB00110A00220AAB00110B00330BA转载 2015-12-03 15:38:51 · 431 阅读 · 0 评论 -
SP2-0618和_SP2-0611错误处理(转)
分类: OracleSP2-0618和_SP2-0611错误处理AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。SQL*Plus AUTOTRACE 可以用来替代 SQL Trace 使用,AUTOTRACE 的好处是您不必设置跟踪文件的格式,并且它将自动为 SQL 语句显示执行计划。然而,AUTOTR转载 2015-12-04 09:12:35 · 611 阅读 · 0 评论 -
Oracle redo与undo浅析
一. 什么是redo(用于前滚数据) redo也就是重做日志文件(redo log file),Oracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。这两类重做日志文件都用于恢复;其主要目的是,万一实例失败或介质失败,它们能够恢复数据。 二. 什么是undo(用于回滚数据)转载 2015-12-04 10:20:26 · 545 阅读 · 0 评论 -
【优化】ALL_ROWS模式和FIRST_ROWS模式的适用场景
在CBO的优化模式下,我们可以使用optimizer_mode参数控制优化模式。主要有两种模式,一种是ALL_ROWS模式,另外一种是FIRST_ROWS模式。ALL_ROWS模式适用场景:希望优化程序给出一种尽快得到全部记录的执行计划,目标是增加系统的吞吐量。FIRST_ROWS模式使用场景:希望优化程序给出一种可以迅速的得到第一行的执行计划,目标是减少系统的响应时间。两种模转载 2015-12-07 17:29:55 · 766 阅读 · 0 评论 -
分析函数操作
下面介绍用于计算分析函数结果的操作。(1)WINDOW (BUFFER)分析函数(Analytic Function)在窗口内存中进行聚集计算。关键词释义分析函数(Analytic Function):基于一组数据计算出聚集结果。这样一组数据就称为一个窗口(window),由分析函数中的OVER ( ... )子句定义。通过分析函数可以避免由复杂的执行操作(转载 2015-12-07 20:39:18 · 377 阅读 · 0 评论 -
oracle 中ANALYZE的使用
知识背景: 1、优化器的优化方式 oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)。 A、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时转载 2015-12-10 16:15:46 · 1476 阅读 · 0 评论 -
Oracle 常用函数大全
SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space fromdual; A A ZERO SPACE--------- --------- --------- ---------转载 2015-12-15 09:10:07 · 337 阅读 · 0 评论 -
Oracle官方文档结构说明(教你如何快速从官方文档中获取需要的知识)
这里以11g官方文档为例:今天来说说怎么快速的从官方文档中得到自己需要的知识。在线官方文档地址: http://tahiti.oracle.com/ 几乎囊括了 oracle各种产品的文档(oracle db12c的文档还没更新上来)离线下载地址: www.oracle.com 这个不多说了以11g官方网文档为例:Getting started 页面: 这里包括一些最基转载 2015-12-16 19:04:49 · 299 阅读 · 0 评论 -
oracle学习入门系列之五内存结构、数据库结构、进程
oracle学习入门系列之五内存结构、数据库结构、进程1 Oracle数据库结构关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大师们的讲稿。但是我们不去管那些,按照我们自己节奏记出特性、记出精彩来。首先插入本系列第一张图片,图一(绝对来自官网),看蛤蟆对于图片使用是多么小心的,如果大伙对这个图已有自己独到的理解,那么可直接跳过本篇笔记吧,当然温故而知新转载 2015-12-16 19:05:25 · 409 阅读 · 0 评论 -
【官方文档】【Doc】oracle官方文档总汇(9i,10g,11gR1, 11gR2)
分类: Linuxoracle不同版本的官方文档在线参考和打包下载地址汇总,罗列在这里,供你我参考。1.9i Oracle官方文档1)在线浏览http://www.oracle.com/pls/db92/homepage2)下载在手,参考无忧Oracle9i Database Release 1 (9.0.1) Documentationhttp:/转载 2015-12-16 19:04:15 · 556 阅读 · 0 评论 -
oracle统计字符串中某个字符出现的次数
oracle中length()与lengthb()区别oracle中length()与lengthb()区别 OracleSQL.oracle中length()与lengthb()区别 SQL> select length('阿猪') from dual; LENGTH('阿猪') -------------- 2SQL> select转载 2016-01-12 13:25:17 · 10001 阅读 · 0 评论 -
java实现ip地址与十进制数相互转换
先看实例 代码如下 复制代码代码如下:classip { privatestaticlongiptolong(stringstrip) //将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.inde转载 2015-12-18 09:54:39 · 1387 阅读 · 0 评论 -
oracle ip地址转换为整数 整数转换为ip代码
oracle 函数 ip地址转换为整数,整数转换为ip 代码方法/步骤1:整数转换为ip地址在oracle中创建如下函数即可:create or replace function inttostrip(ip_address integer) return varchar2deterministici转载 2015-12-18 10:46:19 · 3167 阅读 · 0 评论 -
oracle调用JAVA类的方法
导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1、操作系统需要拥有支持loadjava命令的jdk。 2、加载jlha.jar包,到oracle数据库中。 操作过程:在dos环境下,输入命令: loadjava -r -f -o -user usscares/us转载 2015-12-22 11:47:18 · 787 阅读 · 0 评论 -
Mysql,Oracle,Java数据类型对应
MysqlOracleJava BIGINT NUMBER(19,0)java.lang.Long BIT RAWbyte[] BLOB BLOB RAWbyte[]转载 2015-12-23 12:43:54 · 312 阅读 · 0 评论 -
如何写出性能优良的SQL
如何写出性能优良的SQL(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)转载 2015-12-23 17:28:51 · 225 阅读 · 0 评论 -
Oracle 行转列、列转行 的Sql语句总结
多行转字符串这个比较简单,用||或concat函数可以实现select concat(id,username) str from app_userselect id||username str from app_user字符串转多列实际上就是拆分字符串的问题,可以使用 substr、instr、regexp_substr函数方式字符串转多行使用union转载 2015-12-23 20:18:54 · 1646 阅读 · 0 评论 -
Oracle合并多列到一行wm_concat
Oracle合并多列到一行wm_concat Oracle在group by后合并表的某一列,以逗号隔开 或者合并整个表中的一列 www.2cto.com 函数为wm_concat 用法如下: 把表中一列合并成一行 select wm_concat(songid) from album_song; 把结果里的转载 2015-12-23 20:12:49 · 2957 阅读 · 0 评论 -
java 读取Oracle的clob,blob转换为字符串
java 读取clob,blob转换为字符串/*** * 读取oracleCLOB字段内容 * @param conn * @return */ public static String readCLOB(Connection conn) { String sql = "select 大字段1,大字段2 from 印章基本信息_char_ccbb wher转载 2015-12-24 12:07:38 · 6193 阅读 · 0 评论 -
Java对Oracle中Clob类型数据的读取和写入(转)
Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的也不是很清楚,我对网上资料进行了整理和总结,具体看代码:写入clob数据import java.io.Writer;import java.sql.Connection;import java.sql.DriverManager;im转载 2015-12-24 12:08:36 · 1030 阅读 · 0 评论 -
java使用oracle的存储过程和函数区别
的存储过程和函数区别 1、都可以使用out参数返回多个值,一般原则是有多个返回值使用过程;如果只有一个返回值,使用函数 2、过程调用本身就是一条pl/sql语句,而函数只能作为表达式的一部分进行调用 以获得user_objects表的object_name为例,由于只返回一个字段,所以使用oracle函数,第一种方式返回标量数据类型,第二种方式返回游标类型。标量只包含一个值,而游标可以转载 2015-12-28 11:36:06 · 278 阅读 · 0 评论