oracle笔记
--oralce中从表中随机取出n条记录
select * from (select t.*,dbms_random.random num from fms_branch_info t order by num)
where rownum <= 5;
--取前十行
SELECT t.* from fms_branch_info t
WHERE ROWNUM != 10
--WHERE ROWNUM between 1 and 10
ORDER BY branch_code;
--取第二个十行
select *
from (SELECT t.*,ROWNUM AS rn from fms_branch_info t)
where rn BETWEEN 11 AND 20;
--取最后十行
select st.*
from (SELECT t.*,ROWNUM AS rn from fms_branch_info t) st
where rn >
(
SELECT MAX(st.rn -10)
from (SELECT t.*,ROWNUM AS rn from fms_branch_info t) st
);
--取所有奇数(偶数)行
select st.*
from (SELECT t.*,ROWNUM AS rn from fms_branch_info t) st
where mod(rn,2) != 0
ORDER BY branch_code;
--Oracle中decode函数用法
含义解释:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
decode(字段或字段的运算,值1,值2,值3)
SELECT DECODE (value, <if this value>, <return this value>) from table
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
该函数的含义如下:
IF 条件=值1 THEN
RETURN(返回值1)
ELSIF 条件=值2 THEN
RETURN(返回值2)
......
ELSIF 条件=值n THEN
RETURN(返回值n)
ELSE
RETURN(缺省值)
END IF
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
2、此函数用在SQL语句中
相关文档:
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。
对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。
创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户, ......
http://space.itpub.net/9134/viewspace-166486
经常有人会需要Oracle数据库随着操作系统一起启动和关闭,而修改/etc/oratab,设置了oracle SID行启动为Y时实际上是不好用的。本文以一个例子来示范如何去做。
如下给的是一个example,注意部分内容可能要改,比如oracle的用户名。
1、在/sbin/init.d/目录下建立一个文件, ......
今天在一台2003server上安装 9i客户端。
配置了tns之后连接,报错 "ORA-06413 连接未打开错误".
把其它服务器的tnsname.ora直接拷贝过来也不行。
后来查了一下资料,说应用程序路径里边有特殊字符。
这才恍然大悟,两年前这个问题已经折磨过我一次了,脑子不好,竟然给忘了。
原因就是64位系统环境下安装oracle,oralc ......
1、异常的优点
如果没有异常,在程序中,应当检查每个命令的成功还是失败,如
BEGIN
SELECT ...
-- check for ’no data found’ error
SELECT ...
-- check for ’no data found’ error
SELECT ...
-- check for ’no data found’ err ......