随笔分类 - ORACLE开发
摘要:以system用户登录,解锁HR用户,再以HR用户登录;sqlplus system/passwordSQL>alter user hr account unlock;SQL>alter user hr identified by hr;SQL>conn hr/hr1、创建物化视图日志SQL> create materialized view log on employees with rowid;Materialized view log created.查看物化视图日志结构SQL> desc mlog$_employees;Name Null? Type---
阅读全文
摘要:一、嵌套表的定义: 嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和project. 嵌套表允许在department表中存放关于项目的信息。勿需执行联合操作,就可以通过department表直接访问项目表中的记录。这种不经联合而直接选择数据的能力使得用户对数据访问更加容易。甚至在并没有定义方法来访问嵌套表的情况下,也能够很清楚地把部门和.
阅读全文
摘要:1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,'Y') from dual;TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual;TO_CHAR(SYSDATE,'YY')---------------------07SQL> Select to_char(sysdate,'YYY') from dual;TO_CHAR(SYS
阅读全文
摘要:一、基础1、说明:创建数据库CREATEDATABASEdatabase-name2、说明:删除数据库dropdatabasedbname3、说明:备份sqlserver---创建备份数据的deviceUSEmasterEXECsp_addumpdevice'disk','testBack','c:\mssql7backup\MyNwind_1.dat'---开始备份BACKUPDATABASEpubsTOtestBack4、说明:创建新表createtabletabname(col1type1[notnull][primarykey],col2
阅读全文
摘要:SQL的优化应该从5个方面进行调整:1.去掉不必要的大型表的全表扫描2.缓存小型表的全表扫描3.检验优化索引的使用4.检验优化的连接技术5.尽可能减少执行计划的CostSQL语句:是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的写法;易学,难精通。SQL优化:固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致ORACLE优化器:在任何可能的时候都会对表达式进行评估,并且把特
阅读全文
摘要:在数据库开发与维护中,数据库管理员接触最多的数据类型就是字符类型了,包括字符串、日期类型的字符串等等。在Oracle数据库中为了帮助数据库管理员能够以最快的方式处理这些字符类型的数据,提供了许多有用的函数或者工具。笔者今天就谈谈在Oracle数据库中处理字符串的经验与心得。 一、去掉尾部的空格字符。 有时候在查询或者进行其他处理的时候,需要把字符串尾部的空格字符去掉。如有时候应用软件设计的不合理,会把空格字符保存在数据库中。如在输入产品品号的时候,用户不小心,把“DT001”输成了“DT001 ”。如果应用程序在设计的时候,能够自动把尾部的空格去掉然后在保存到数据库中能够就万无一失了。但是..
阅读全文
摘要:View Code SELECTlotid,ltrim(MAX(sys_connect_by_path(wf_lotno,',')),',')wf_lotno,ltrim(MAX(sys_connect_by_path(wf_jobno,',')),',')wf_jobno,ltrim(MAX(sys_connect_by_path(wf_partno,',')),',')wf_partno,ltrim(MAX(sys_connect_by_path(supplier,',')),&
阅读全文
摘要:一,基础概述1,oracle的锁定与事务仅仅来看下oracle的一些锁和事务的相关视图或参数,基本原理见基础篇的事务原理一节。(本节内容可以参考9i或10g的<reference>)V$lock:这个视图列出了所有数据库中的所有锁(locks)和闩(latches)和所有在一个lock或者latch上的请求。简述如下:Addr处于lock状态的对象的地址Kaddrlock的地址Sid session idType用户或者系统锁的类型,用户锁例如:TM-DML入队, TX-事务入队,UL-用户提供的(User supplied) 系统类型的锁定诸如:SMON指派恢复进程,临时段入队,
阅读全文
摘要:drop table temp;create table temp(row_id char(1), col_id char(1),rol_id char(2), qty varchar2(9), back_qty varchar2(9), set_qtyvarchar2(9), rmk char(1)); begin delete from temp; for i in 1..9 loop for j in 1..9 loop insert into temp values(i,j,null,null,null,null,'N'); end loop; end loop; up
阅读全文
摘要:test表结构和数据为:id starttime1 2010/11/121 2010/12/122 2011/3/2sql语句:select id,substr(aa,0,10) starttime1,substr(aa,21,10) starttime2,substr(aa,31,10) starttime3from (select t.id,WMSYS.WM_CONCAT(t.starttime) aa from test tgroup by t.id)显示结果:id starttime1 starttime2 starttime31 2010/11/12 2010/12/12 null2
阅读全文
摘要:create table test_1 ( x number(10), y number(10) ); insert into test_1 values (1,110); insert into test_1 values (2,120); insert into test_1 values (2,80); insert into test_1 values (3,150); insert into test_1 values (3,30); insert into test_1 values (3,60); commit; select * from test_1; X Y----...
阅读全文
摘要:前言:关于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
阅读全文
摘要:朱哥发给我做的。一、有如下表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
阅读全文
摘要: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
阅读全文
摘要:【转】oracle提高查询效率(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHER...
阅读全文
摘要:这几天感冒了,浑身很惬意就是没力气。工作上遇到了几个高级分组跟取数的东东,用到了分析函数:暂时列举出来,过几天等身体好了再补上教程。OVER:select distinct 保单号, 生效时间, 二级机构, 产品名称, count(*) over(partition by 保单号, 生效时间, 二级机构,产品名称) 件数 from WJRS_XB_20110825_04where 保单号 = 'HP02020000121158';Rank, Dense_rank, row_number:select 保单号, 生效日期, 产品, 客户账号所属银行, 失败原因, 缴费金额, 保单
阅读全文
摘要:最近做信息采集,总是需要创建临时表,一同连接8个库同时开展。但是ORACLE里面没有像SQLSERVER那样的if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HY_BSCDNM_J]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[HY_BSCDNM_J]GOCREATE TABLE .......为避免总是要去点击SURE,所以参考了网上的方法,在创建临时表的时候,省去点击的麻烦。待采集脚本写
阅读全文
摘要:测试环境 sqlserver 2005工作需要,回家再转成oracle的--游标调用函数--1、建立基表create table planwork( planid int, empid int)insert into planwork values (1,100)insert into planwork values (2,200)insert into planwork values (3,300)insert into planwork values (4,400)insert into planwork values (5,500)insert into planwork values
阅读全文
摘要:目录--- 一.相关的概念 Rowid的概念 Recursive (回归的, 递归的) Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scans, FTS) 2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup) 3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描: (1) 索引唯一扫描(i
阅读全文
摘要:ORACLE SQL语句优化技术分析一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。 在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果
阅读全文

浙公网安备 33010602011771号