摘要: 前言:关于oracle sql查询的优化规则,一般建议大表最好只查询一次。那么,怎么样就能做到前一次的大表查询结果能被下一个查询用到呢?我认为WITH很不错。with a as (select dummy from dual),b as (select dummy from dual)select a.dummy,b.dummy from a,b where a.dummy = b.dummy /********************************/Starting in Oracle9i release 2 we see an incorporation of the SQL-9 阅读全文
posted @ 2011-09-03 09:14 老猫-DB 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 朱哥发给我做的。一、有如下表id parentid name1 0 电脑2 1 笔记本3 1 台式机4 1 服务器5 2 联想6 5 T40根据上表数据,查询出:1 电脑2 电脑 - 笔记本3 电脑 - 台式机4 电脑 - 服务器5 电脑 - 笔记本 - 联想6 电脑 - 笔记本 - 联想 - T40--------------------------------------------------------create table test_03( id int, parentid int,name varchar2(20));insert into test_03 values (1,0 阅读全文
posted @ 2011-08-29 08:17 老猫-DB 阅读(709) 评论(1) 推荐(0) 编辑
摘要: sqlldr是cmd下的命令,用来将文本格式数据导入到数据库中。命令格式:sqlldr username/password@sid control=*.ctl*.ctl格式为:loadinfile "d://test.txt" 外部数据文件infile "d://test1.txt" 可指定多个数据文件append into table test 向表中追加数据fields terminated by "," 外部文件的数据以“,”分隔trailing nullcols 表中的字段没有对应的值时填充空值(id integer exte 阅读全文
posted @ 2011-08-28 18:38 老猫-DB 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 前言:上一篇我讲解了怎么在虚拟机环境安装oracle10g,但是很多命令可能大家不清楚,那么这一篇我将一些基础的linux命令列举出来,供大家参考学习。本人也是从网上搜刮实验而得。IDE型硬盘抽象为 hdaSATA型硬盘抽象为 sdadf -h 查看路径与硬盘对应位置 ls 列目录ls / 根目录下面的内容 目录不超过127层fdisk 分区列表 一个分区可以挂载到多个目录mount /dev/sda9 /mnt 分区sda9挂载到mnt文件夹下 必须先有mnt个文件夹umount /dev/sda9 取消挂载 或者 umount /mntcd /boot 进入目录cd /boot/gurb/ 阅读全文
posted @ 2011-08-27 19:54 老猫-DB 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Oracle产生各种随机数的方法Oracle产生各种随机数的方法selectdbms_random.random from dual;select abs(mod(dbms_random.random,100)) from dual;-- generate a random number between 0 and 100.selecttrunc(100+900*dbms_random.value) from dual; -- 100~1000selectdbms_random.value from dual; --0~1selectdbms_random.value(10,20) from 阅读全文
posted @ 2011-08-26 13:03 老猫-DB 阅读(301) 评论(0) 推荐(0) 编辑
摘要: oracle的正则表达式(regular expression)简单介绍目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境。Oracle 10g正则表达式提高了SQL灵活性。有效的解决了数据有效性,重复词的辨认, 无关的空白检测,或者分解多个正则组成的字符串等问题。Oracle 10g支持正则表达式的四个新函数分别是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和REGEXP_REPLACE。它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。特殊字符: 阅读全文
posted @ 2011-08-26 13:03 老猫-DB 阅读(184) 评论(0) 推荐(0) 编辑
摘要: db link 的格式,用于连接不同数据库的查询(sql、pl)create database link onss(链接名)connect to STAGINGUSER(用户名) identified by STAGINGUSER(密码)using 'PROSTAGE'(tns 配置名);select * from STAGINGUSER.cti_grofags_hour@onss;DROP DATABASE LINK onss(链接名); //删除dblink 阅读全文
posted @ 2011-08-26 12:59 老猫-DB 阅读(157) 评论(0) 推荐(0) 编辑
摘要: select lpad(' ',4*(level-1))||t.project_id project_id,t.parent_project_id from PC_PROJECT_ASSOC t start with project_id='xRFv29ZYbE'connect by prior project_id = parent_project_idstrat with 指定层次开始的条件,即是说满足这个条件的行即可以做为层次树的最顶层 connect by prior指层之间的关联条件,即什么样的行是上层行的子行(自连接条件)基本语法select...f 阅读全文
posted @ 2011-08-26 12:52 老猫-DB 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: 【转】oracle提高查询效率(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHER... 阅读全文
posted @ 2011-08-26 12:51 老猫-DB 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这几天感冒了,浑身很惬意就是没力气。工作上遇到了几个高级分组跟取数的东东,用到了分析函数:暂时列举出来,过几天等身体好了再补上教程。OVER:select distinct 保单号, 生效时间, 二级机构, 产品名称, count(*) over(partition by 保单号, 生效时间, 二级机构,产品名称) 件数 from WJRS_XB_20110825_04where 保单号 = 'HP02020000121158';Rank, Dense_rank, row_number:select 保单号, 生效日期, 产品, 客户账号所属银行, 失败原因, 缴费金额, 保单 阅读全文
posted @ 2011-08-25 16:59 老猫-DB 阅读(368) 评论(0) 推荐(0) 编辑