㈠先看两个来自生产环境的真实案例:案例1案例2㈡原理:Oracle在对于varchar等字符型字段收集统计信息时,并不会对每个值都进行精确的统计而是,对值进行substr(,32)。一般来讲,这种方式没有什么问题但是,如果恰巧列中存储的数据,前32bytes相同,那么,Oracle的统计就会与实际情况不符㈢测试:hr@ORCL>droptabletpurge;Tabledropped.hr@ORCL>createtablet(idnumber,nameva
系统 2019-08-12 01:54:44 2098
------------------------2013-5-18------------------------异常raise_application_error:错误编号必须介于-20000和-20999之间错误消息的长度可长达2048个字节。游标类型静态游标隐式游标sql%foundsql%rowcount显式游标cur_xxx%foundref游标游标属性%notfound%found%rowcount%isopen控制显示游标openfetchc
系统 2019-08-12 01:53:36 2098
首先查找目标用户的当前进程,注意是serial#而不是serial,网上有的介绍漏掉了#:selectsid,serial#fromv$sessionwhereusername='ERP';使用此语句会返回一个进程列表,每行有两个数字,然后用数字替代下面的sid和serialaltersystemkillsession'sid,serial';例如altersystemkillsession'222,123';通过select语句可能返回多行记录,所以要多
系统 2019-08-12 01:52:39 2098
在oracle中我们经常会和日期打交道,在做报表的时候经常会用日报,周报,月报之类的条件进行分组;我写了些例子来启发下大脑selectSysdatefromdualselectto_char(sysdate,'yyyy')as年fromdualselectto_char(sysdate,'mm')as月fromdualselectto_char(sysdate,'dd')as日fromdualselectto_char(sysdate,'iw')as周一到
系统 2019-08-12 01:51:52 2098
CREATEORREPLACEPROCEDUREchange_Zgh(v_oldzghinvarchar2,v_newzghinvarchar2)iscursorcurisselect(selectcolumn_namefromuser_cons_columnsbwhereb.constraint_name=a.constraint_name)cname,a.table_nametnamefromuser_constraintsawhereR_CONSTR
系统 2019-08-12 01:51:51 2098
原文:http://dolphin-ygj.iteye.com/blog/416356rollup只有第一个参数起作用也是理解不正确的,先看看例子吧:SQL>selectgrade,id,numfroma;GRADEIDNUM------------------------------a11a22b34b44对grade字段进行rollup:SQL>selectgrade,sum(num)fromagroupbyrollup(grade);GRADESUM
系统 2019-08-12 01:51:49 2098
1、解锁用户以dba身份登录sqlplus/assysdbaalteruserscottaccountunlock;2、解锁表altersystemkillsessionSELECTl.session_idsid,s.serial#,l.locked_mode,l.oracle_username,l.
系统 2019-08-12 01:54:52 2097
1.数据文件自动扩展的好处1)不会出现因为没有剩余空间可以利用到数据无法写入2)尽量减少人为的维护3)可以用于重要级别不是很大的数据库中,如测试数据库等2.数据文件自动扩展的弊端1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大2)没有人管理的数据库是非常危险的3.查询当前数据库中表空间SEC_D是否为自动扩展sec@orcl>selecttablespace_name,file_name,autoextensiblefromdba_da
系统 2019-08-12 01:54:20 2097
SQLServer使用英文字符串的匹配的时候默认是忽略大小写的,这样用起来是比较方便的,如果想不忽略大小写也可以修改配置,但是Oracle好像不能忽略大小写,在进行字符串匹配的时候就比较麻烦了。那么该怎么解决大小写敏感的问题,把需要的数据都查询出来呢?最常见的办法就是把查询的参数和字段中的内容都转化成大写或者都转化成小写,这样就可匹配了。比如如下的查询:select*fromhr.EMPLOYEEStwhereupper(first_name)=upper
系统 2019-08-12 01:53:23 2097
第三十七讲ifthenifelsethenifelsethenelsifelsifcreateorreplaceprocedurepro1(v_in_enamevarchar2)is--定义工资变量v_salemp.sal%type;beginselectsalintov_salfromempwhereename=发——沁+;ifv_sal<2000thenupdateempsetsal=sal*1.1whereename=v+in+ename;endif
系统 2019-08-12 01:32:20 2097
作者:eygle出处:http://www.eygle.com/blog日期:October28,2005本文链接:http://www.eygle.com/archives/2005/10/howto_control_10goem.html«OracleHowTo:如何快速杀死占用过多资源(CPU,内存)的数据库进程|Blog首页|SymantecVISION2005China下月召开»从Oracle10g开始,Oracle极大的增强了OEM工具,并通过
系统 2019-08-29 23:28:18 2096
Oracle数据库:刚做一张5000万条数据的数据抽取,当前表同时还在继续insert操作,每分钟几百条数据。该表按照时间,以月份为单位做的表分区,没有任何索引,当前共有14个字段,平均每个字段30个字节。当前表分区从201101到201512每月一个分区测试服务器:xeno5650,32核cpu,win2003操作系统,物理内存16G;测试工具plsql1.最开始的查询:string.Format(@"select*from(selectr.id,r.c
系统 2019-08-12 01:52:59 2096
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和
系统 2019-08-29 22:37:43 2095
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表drivingtable)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询,那就需要选择交叉表(intersectiontable)
系统 2019-08-12 01:52:42 2095
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle8i中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE
系统 2019-08-12 01:51:37 2095