Oracle
yhef
vv
展开
-
Oracle临时表
创建Oracle临时表,可以有两种类型的临时表:会话级的临时表、事务级的临时表。1:[color=blue]会话级的临时表[/color]因为这这个临时表中的数据和你的当前会话有关系,当你当前SESSION不退出的情况下,临时表中的数据就还存在,而当你退出当前SESSION的时候,临时表中的数据就全部没有了,当然这个时候你如果以另外一个SESSION登陆的时候是看不到另外一个SES...原创 2010-07-11 21:17:36 · 82 阅读 · 0 评论 -
ORA_HASH函数
用ora_hash函数可以对列进行分组: 例:按员工的职务进行分组,理想情况下,相同职务的员工会被分配到同一组里,如果数据值分布不均匀,HASH的结果可能也会不均匀。select ora_hash(t.job, 5) hash_val, t.* from emp t order by hash_val 执行结果: 注意:分组序号,从0开始,但不意味着每个组里都会有数据...原创 2012-04-03 11:01:39 · 2665 阅读 · 0 评论 -
利用ROW_NUMBER()函数实现按条件分组排序
背景:我想删除表中的重复数据,但是我又想以某些条件进行排序,然后再删除,用普通的GROUP BY相对麻烦,可以尝试这个方法。数据准备:[code="sql"]insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7499, 'ALLEN', 'SALESMAN', 769...原创 2012-07-28 13:35:07 · 1546 阅读 · 0 评论 -
大数据量导入方法
一、大数据量进行MERGE操作前置条件:目标表数据大、需更新的数据占50%以上。总体思路:避免UPDATE操作,只用INSERT。1:表定义:最终目标表:EMP数据接口表:ITF_EMP临时转换表:TMP_EMP2:操作步骤:2.1:将本次不需要更新的数据插入到临时表中。[code="sql"]INSERT INTO TMP_EMP SELECT T...原创 2012-08-12 13:10:29 · 366 阅读 · 0 评论 -
oracle 全文检索示例(转)
感谢作者,原文地址:http://www.iteye.com/topic/1118055大致内容:一、创建分析器basic_lexer:只能根据空格和标点来进行拆分。比如“中国重庆”,只能拆分为“中国重庆”一个词组chinese_vgram_lexer:专门的汉语分析器,按字单元进行拆分,比如“中国重庆”,可以拆分为“中”、“中国“、”国重”、“重庆”、“庆”五个词...原创 2012-11-21 10:53:48 · 113 阅读 · 0 评论 -
SCN跟TIMESTAMP之间转换
[code="sql"]--获取当前的SCNselect dbms_flashback.get_system_change_number scn1,timestamp_to_scn(sysdate) scn2 from dual;--将SCN转换成功时间select to_char(scn_to_timestamp(34607271), 'yyyy-mm-dd hh24:mi:...原创 2012-11-21 14:17:35 · 352 阅读 · 0 评论 -
Oracle expdp/impdp工具使用(转)
原文地址:http://blog.csdn.net/indexman/article/details/7849401原创 2013-06-15 10:36:24 · 101 阅读 · 0 评论 -
LAG\LEAD用法
简介:偏移量函数,可以实现将当前记录的[b](前、后)[/b]记录的字段值,当成当前记录的字段展示。一、资源准备:1:建表[code="sql"]create table TEST_1( c1 VARCHAR2(10), c2 VARCHAR2(10), c3 VARCHAR2(10));[/code]2:数据准备[code="sq"]...原创 2012-09-23 11:56:17 · 159 阅读 · 0 评论 -
ROLLUP\CUBE简单例子
简介: 一、资源准备: 1:建表 [code="sql"]create table TEST_1 ( c1 VARCHAR2(10), c2 VARCHAR2(10), c3 VARCHAR2(10) );[/code] 2:数据准备 [code="sql"]insert into TEST_1 (C1, C2, C3)...原创 2012-09-23 12:30:51 · 119 阅读 · 0 评论 -
PCTFREE、PCTUSED
PCTFREE:块中保留用于UPDATE操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此块中; PCTUSED:指定块中数据使用空间的最低百分比;当一个块在达到PCTFREE,之后经历了一些DELETE操作,在其空间使用下降到PCTUSED 后便可以重新被用于INSERT数据;这就是PCTFREE/PCTUSED参数的含义; 调整PCTFREE、PCTU...原创 2013-06-28 22:34:11 · 144 阅读 · 0 评论 -
ORACLE伪列
一、ORA_ROWSCN (10g or later) 。返回行(BLOCK)的SCN号,取到SCN后可以通过SCN_TO_TIMESTAMP转换成时间。表示此行最后更新时间. select to_char(scn_to_timestamp(ora_rowscn), 'YYYY-MM-DD HH24:MI:SS'), scn_to_timestamp(ora_row...原创 2012-02-12 19:03:04 · 89 阅读 · 0 评论 -
wmsys.wm_concat多行文本连接
一、背景: 当需要对某个分组下的部分字段拼接起来在同一行中显示时。 貌似只支持用英文逗号进行串联。 示例:1:SQL[code="sql"]select deptno, wmsys.wm_concat(t.empno || '-' || t.ename) emps from emp t group by t.deptno;[/code...原创 2012-06-17 13:19:31 · 200 阅读 · 0 评论 -
PL/SQL中操作字符串的工具方法
在平常的工作中,经常会对字符串进行操作,在此写简单的工具类。目前包括:1:fn_split,将由分隔符组成的字符转换成集合类型。2:fn_contact,将集合里的字符串拼接成一个字符串。创建PKG定义:[code="sql"]create or replace package character_util is --构建集合类型 DBMS_UTILITY...原创 2010-06-08 21:35:52 · 201 阅读 · 0 评论 -
Oracle 查询死锁对象(摘)
查询死锁:[code="sql"]select object_name, machine, s.sid, p.spid, s.osuser, s.program, s.STATUS, s.ACTION, p.SERIAL#, l.SESSION_ID from v$locked_object l, dba_objects o, v...原创 2011-05-14 10:01:36 · 136 阅读 · 0 评论 -
ORACLE 错误信息速查
ORA-01006: Bind variable does not exist 例:EXECUTE IMMEDIATE 'SELECT * FROM EMP E WHERE E.EMPNO = :EMPNO'USING 'TOM',26;解释: 传的参数多余SQL中接收的参数个数。此例,本来只应该传入一个参数,而我却传了2个。 ////////////////////////////...原创 2011-09-04 13:10:46 · 213 阅读 · 0 评论 -
将表导出为dmp文件
Windows 命令行下:exp user/password@orcl file=c:\\exp.dmp tables=tab原创 2011-02-14 21:32:43 · 288 阅读 · 0 评论 -
常用EXCEPTION
Error Code PrefixIndicates This Exception Type of ErrorORACore RDBMS errorsPLSPL/SQL errorsFRMOracle Forms errorsREPOracle Reports errors no_data_found Si...原创 2011-09-17 16:19:01 · 208 阅读 · 0 评论 -
rank、dense_rank、row_number
三者主要区别在于对相同序号后的下一行记录的处理。 1:RANK():跳跃排序,如果有两个第二名,接下来的就是第四名,而不是三名 【奥运会奖牌榜排名方式】2:DENSE_RANK():连续排序,如果有两个第二,接下来的仍是三 【两个LEADER一样大,不适合再排序】3:ROW_BUMBER():序号进行递增 【两条记录不会共用同一个序号】 三者区别见下图: ...原创 2011-09-18 15:15:24 · 101 阅读 · 0 评论 -
自定义过程ORACLE KILL SESSION
我觉得这个可以是一个小工具,所有我授权给了所有人(不过这也很危险)。1:用SYS建立此PROC,源码: [code="sql"]create or replace procedure kill_session(p_username varchar2, p_sid number, ...原创 2011-06-26 09:50:32 · 98 阅读 · 0 评论 -
Current of Cursor示例
我觉得current of的最大好处就是,当要写巨多where条件才能唯一确定一条记录时比较清晰。比如:where deptno=20 and sal原创 2011-06-26 10:36:11 · 672 阅读 · 0 评论 -
应用系统性能优化的思路
一、需求分析、设计方面: 1:需求的必要性 2:实现方案的合理性 3:OLTP or OLAP 二、DB层面: 1:CACHE、PRIOR AGGREGATE、OPERATION COUNT、PLACEHOLDER、PARALLEL、HINT 2:INDEX、DB LOG LEVEL、LOGGING、Analy Statistic Info 三、主机硬件方...原创 2011-11-19 11:59:28 · 151 阅读 · 0 评论 -
ORACLE数据库集合类型示例
[code="sql"]declare --------类型定义 --类型1 type t_array1 is varray(20) of varchar2(30); --类型2 type t_array2 is table of varchar2(20) index by binary_integer; --类型3 type t_array3 is ...原创 2014-06-04 18:09:55 · 196 阅读 · 0 评论