2011年11月10日

Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制

摘要: Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制4.1 IF语句IF THEN END IF;这是IF语句最简单的用法。IF和THEN之间的条件决定了在THEN和END IF之间的一系列语句是否会被执行。如果条件部分的求值结果是FALSE或者NULL,这些代码就不会执行。IF conditionTHEN ....END IF;IF THEN ELSE END IF;这种组合形式的IF语句实现了二选一的逻辑。根据对位于IF和THEN两个关键字之间的条件的求值结果,或者是THEN和ELSE之间的代码被执 阅读全文

posted @ 2011-11-10 00:10 天魂无双 阅读(415) 评论(0) 推荐(0) 编辑

2011年11月8日

Oracle PL/SQL 程序设计读书笔记 - 第3章 语言基础

摘要: Oracle PL/SQL 程序设计读书笔记 - 第3章 语言基础Oracle PL/SQL 程序设计读书笔记 - 第3章 语言基础3.1 PL/SQL 块结构PL/SQL的最小的有意义的代码单元叫做块(block)。PL/SQL允许我们创建匿名块,和命令块。命名的块可以是包,过程,函数,解发器或者对象类型。 一个PL/SQL块最多可以由4个不同的单元组成。块头(Header)声明单元(Declaration section)执行单元(Execution section)必须异常处理单元(Exception section)Header IS Declaration Section BEGIN 阅读全文

posted @ 2011-11-08 23:45 天魂无双 阅读(392) 评论(0) 推荐(0) 编辑

2011年11月7日

Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码

摘要: Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码2.3.1 启动SQL*PlusOS>sqlplusOS>sqlplus username/passwordOS>sqlplus /nolog使用/NOLOG选项来启动SQLPlus,这种方式只是进入SQLPlus环境,而不会连接到数据库。接下来再通过CONNECT命令,并提供用户名和密码进入数据库。SQL>CONNECT username/password@sid2.3.3 运行PL/SQL程序SQ 阅读全文

posted @ 2011-11-07 19:44 天魂无双 阅读(766) 评论(0) 推荐(0) 编辑

2011年10月5日

取得光标位置

摘要: 取得光标位置取得光标位置最近在项目中遇到了一个取得光标位置相关的BUG。现总结如下:环境略BUG现象问题很简单,画面上有一个textarea,还有一个button,当客户点击button的时候想向textarea中当前光标位置,插入一段固定的话。当然实际系统中业务比这个要复杂一些,但基本就是这么一回事。问题的关键是textarea的光标当前位置的计算。 客户在画面输入两行文字,光标停在了第二行的开始。但是文字确插入在了第一行的末尾。 这很明显是个BUG。BUG解析以前的代码:info.activeElement = document.activeElement;info.activeEleme 阅读全文

posted @ 2011-10-05 23:09 天魂无双 阅读(539) 评论(0) 推荐(0) 编辑

神奇的「叱る」

摘要: 神奇的「叱る」神奇的「叱る」最近在项目中遇到了一个关于编码问题相关的BUG。现总结如下:关键字サロゲートペア文字Surrogate环境AP:Windows 2000语言:JavaBUG现象先说一下背景吧,从题目上大家可能也已经明白了,这个系统是一个日文系统的软件。 如果你用日文系统的话,可以试着打一下「しかる」在选择汉字的时候,有一组环境依存的选项。里面的「叱」字变成了乱码。这就是问题的起因。 客户就选择了那个乱码的字。好像在其它系统里是正常的。不过读到我们系统的时候就出问题了。其实这个文字变成乱码这个问题是和系统相关,我们也没有办法。但是问题是乱码的部分被系统解析成两个字符了。就是是str. 阅读全文

posted @ 2011-10-05 23:08 天魂无双 阅读(835) 评论(0) 推荐(0) 编辑

2011年9月18日

如何跟踪SQL(SQL_TRACE & TKPROF)

摘要: 如何跟踪SQL(SQL_TRACE & TKPROF)如何跟踪SQL(SQL_TRACE & TKPROF)我们在做SQL性能调优的时候,首先就是跟踪这个SQL的执行过程。环境DB:Oracle10gSQL_TRACESQL TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具。在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。如何使用SQL_TRACE-- 首先设置SQL_TRACE的文件标示,否则这生成的文件可不太好找alter session set tracefile_identifier="oracle_test& 阅读全文

posted @ 2011-09-18 21:27 天魂无双 阅读(1645) 评论(0) 推荐(0) 编辑

2011年8月20日

XMLTable使用实践

摘要: XMLTable使用实践最近在项目中遇到了一个使用XMLTable解决问题的实践。现总结如下:环境DB:Oracle11gORM:iBatisBUG现象问题其实很简单,就是我们在项目中使用了很多超级长的SQL语句,之后导致SQL执行效率低下,并且貌似导致了Oracle的SQL编译空间益出了。出问题的SQL:SELECT N1,N2FROM A1WHERE (N1='1' AND N2='a1') OR (N1='2' AND N2='a2') OR (N1='3' AND N2='a3') OR ( 阅读全文

posted @ 2011-08-20 22:49 天魂无双 阅读(2869) 评论(0) 推荐(0) 编辑

2011年4月25日

Select中的ROWNUM

摘要: Select中的ROWNUM最近在项目中遇到了一个关于ROWID理解不足而产生的BUG。现总结如下:环境DB:OracleAP:WeblogicBUG现象程序是这样的有一个打印的机能,是按照某一个顺序进行顺次打印。BUG的描述也很简单,就是顺序不对。BUG解析这BUG解析不复杂,一看顺序不对,肯定就是SQL那错了呗。但看了一下程序处理很特别,是有个SQL文,SQL文里也有Order By,但不是把数据全取出来,而是每次只取第一条。通过循环无限的去取。可能是怕数据太多了内存会溢出吧。但在抽取的时候他使用了ROWNUM这个伪列,错也由此而来。总结我们先说一下ROWNUM这个虚拟列的特征:排序前将检 阅读全文

posted @ 2011-04-25 23:53 天魂无双 阅读(4071) 评论(2) 推荐(1) 编辑

2011年3月29日

Select中Like子句的全角%

摘要: Select中Like子句的全角%最近在项目中遇到了一个关于Like子句理解不足而产生的BUG。现总结如下:环境DB:OracleAP:WeblogicBUG现象在一个检索上面上有一个输入框,输入的内容会传送到后台做Like的不完全匹配。因为这个输入框我们在后台已经做了全角的Check,所以就没有考虑SQL注入的问题。到和结合测试环境,我就接到了如下BUG票。输入:%想定结果:所有含有全角%的数据被检出。异常结果:全件被检出。BUG解析简单看了一下,问题很明显,全角%被当做通配符了。BUG解决解决起来也就简单了使用like的逃逸字符(escape)就可以了。LIKE '%\%%' 阅读全文

posted @ 2011-03-29 21:13 天魂无双 阅读(1150) 评论(2) 推荐(1) 编辑

导航