oracle高级应用基础

oracle高级应用基础

ID:6164897

大小:180.50 KB

页数:12页

时间:2018-01-05

oracle高级应用基础_第1页
oracle高级应用基础_第2页
oracle高级应用基础_第3页
oracle高级应用基础_第4页
oracle高级应用基础_第5页
资源描述:

《oracle高级应用基础》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1.查看版本号及锁表处理1.1查看版本号SQL>select*fromv$version;BANNER----------------------------------------------------------------OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0-64biPL/SQLRelease10.2.0.4.0-ProductionCORE10.2.0.4.0ProductionTNSforHPUX:Version10.2.0.4.0–Pr

2、oductionNLSRTLVersion10.2.0.4.0–Production1.2锁表处理以DBA角色,查看当前数据库里锁的情况可以用如下SQL语句:selectt2.username,t2.sid,t2.serial#,t2.logon_timefromv$locked_objectt1,v$sessiont2wheret1.session_id=t2.sidorderbyt2.logon_time如果有长期出现的一列,可能是没有释放的锁解决方法有三种:(1)释放锁的方法:我们可以用下面SQL语句杀掉长期

3、没有释放非正常的锁:altersystemkillsession'sid,serial#';//sid,serial#是上面查询出来的(2)系统级杀进程方法释放锁:selectspidfromv$processwhereaddr=(selectpaddrfromv$sessionwheresid=&sid);$kill-9spid//spid是上面查询出来的(3)注意点:如果出现了锁的问题,某个DML操作可能等待很久没有反应。当你采用的是直接连接数据库的方式,也不要用OS系统命令$killprocess_num或者

4、$kill-9process_num来终止用户连接,因为一个用户进程可能产生一个以上的锁,杀OS进程并不能彻底清除锁的问题。2.2.case–when-then-end和Decodeselectt.id,t.name,t.sal_int,casewhent.sal_int<3000then'less'whent.sal_intisnullthen'null'else'many'endasssfromtesttIDNAMESAL_INTSS1kevin3233many10tom4567many11sum2678les

5、s12lucy2908less13peter4523many14kite3145many15kitty2356less16terry3245many17jerry3245many18Jessica1345less19paul3216many2kevin4352many20joe2789less3mike4344many4jack7544many5lily1234less6jim3212many7tony2000less8tom null9tom3423manyDecode函数decode(条件,值1,翻译值1,值2

6、,翻译值2,...值n,翻译值n,缺省值)该函数的含义如下:IF条件=值1THEN  RETURN(翻译值1)ELSIF条件=值2THEN   RETURN(翻译值2)   ......ELSIF条件=值nTHEN  RETURN(翻译值n)ELSE    RETURN(缺省值)ENDIF上例也可以写为decode方式,得到同样的结果,sign()函数判断括号内的值,是正数返回1,负数返回-1:0返回0selectt.id,t.name,t.sal_int,decode(sign(sal_int-3000),-1,

7、'less',1,'many',0,'same','null')fromtestt3.ROWNUM的应用3.1在Oracle中实现SELECTTOPN:由于ORACLE不支持SELECTTOP语句,所以在ORACLE中经常是用ORDERBY跟ROWNUM的组合来实现SELECTTOPN的查询。简单地说,实现方法如下所示:SELECT 列名1...列名n FROM(SELECT 列名1...列名n FROM表名ORDERBY列名1...列名n)WHEREROWNUM<=N(抽出记录数)sORDERBYROWNUMAS

8、C3.2在TOPN纪录中抽出第M(M<=N)条记录在得到了TOPN的数据之后,为了抽出这N条记录中的第M条记录,我们可以考虑从ROWNUM着手。我们知道,ROWNUM是记录表中数据编号的一个隐藏子段,所以可以在得到TOPN条记录的时候同时抽出记录的ROWNUM,然后再从这N条记录中抽取记录编号为M的记录,即使我们希望得到的结果。从上面的分析可以很容易得到下面

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。