易截截图软件、单文件、免安装、纯绿色、仅160KB

[转] 解析oracle的ROWNUM 作者: chen_liang

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。
 举例说明:
例如表:student(学生)表,表结构为:
ID       char(6)      --学号
name    VARCHAR2(10)   --姓名
create table student (ID char(6), name VARCHAR2(100));
insert into sale values('200001',‘张一’);
insert into sale values('200002',‘王二’);
insert into sale values('200003',‘李三’);
insert into sale values('200004',‘赵四’);
commit;
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。
SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)
SQL> select rownum,id,name from student where rownum=1;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         1 200001 张一
SQL> select rownum,id,name from student where rownum =2;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
(2)rownum对于大于某值的查询条件
   如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum> n(n>1的自然数)这种条件依旧不成立,所以查不到记录
SQL> select rownum,id,name from student where rownum >2;
ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
那如何才能找到第二行以后的记录呀。可以使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,


相关文档:

关于ORACLE辅助语句

--JOBS
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(job => X,
what => 'sp_test();',
next_date => to_date('28-04-2009 11:58:00',
'dd/mm/yyyy hh24:mi:ss'),
interval => 'SYSDATE+1');
END;
/
commit;
select to_char(sysdate-90,'yyyymmdd') from dual;  --选择日期
select * from ......

Oracle 的drop table if exists功能

Oracle创建表时,常遇到先删除后创建的情况,而它又没有drop table... if exists语法。为此可以使用user_objects数据字典和动态sql语句实现类似的功能,如下所示:
create or replace procedure proc_dropifexists(
    p_table in varchar2
) is
    v_count number(10);
begin
&nbs ......

aix下安装oracle心得

删除AIX下的ORACLE
===========================================================
作者: wmlm(http://wmlm.itpub.net)
发表于:2008.12.02 18:17
分类: oracle
出处:http://wmlm.itpub.net/post/12871/474762
---------------------------------------------------------------
rm -Rf /etc/oratab
rm -Rf /et ......

Oracle sqlplus 配置

sqlplus的配置文件为login.sql,通常如下所示创建该文件:
set serveroutput on size 1000000
set trimspool on  --滤除spool输出的空白
set linesize 200  --用于设定每行显示的宽度
set pagesize 9999 --设置显示的页数
set sqlprompt '_user @ _connect_identifier> '
将该文件复制到Oracle安装目录C ......

Oracle随机函数的用法

 容易得说,经过dbms_random包调用随机数的步骤大体有4种:
一、dbms_random.normal
这个函数不带参数,会回到normal distribution的一个number门类,之所以大抵随机数会在-一到一其间。
简略测试了一下子,发作100000次最大能到五上下:
SQL> declare
二 i number:=零;
三 j number:=零;
四 begin
五 for ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号