0℃
rownum,rowid都叫伪列。 但是,rownum是逻辑上的编号,且其值总是从1开始,每行的rounum不是固定的。而rowid是“物理”编号。若数据库文件没有移动,则每行的 rowid一般是固定不变的。
racle中rownum用法的总结
对于 Oracle的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,>=,=,between..and时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum伪列的意义就不应该感到惊奇...
oracle阅读全文
0℃
利用rownum分页可以参考下面的sql
select * from (
select t1.*,rownum rn from (
select * from scott.emp order by sal desc --这里是排序好的表
)t1 where rownum < 8 --这里是上限
)where rn > 5 --这里是下限
利用rowid分页可以参考下面的sql,rowid的效率比rownum高
select * from scott.emp where rowid in ( --这里选择要查询出的字段
select rid from (
select rownum rn,rid from (
select rowid rid,sal from scott.emp order by sal desc --这里进行表排序
) where ro...
oracle, 分页阅读全文
0℃
查询一小时
select concat(to_char(sysdate,'yyyy-mm-dd ')||(to_char(sysdate,'hh24')-1),':00:00') start_time,concat(to_char(sysdate,'yyyy-mm-dd hh24'),':00:00') end_time from dual
查询前一天
select to_char(sysdate-1,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-1,'yyyy-mm-dd ')||'23:59:59' end_time from dual
查询前一个月
select concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-'),'01 00:00:00')start_time,
concat(to_char(sysdate,'yyyy')||to...
oracle阅读全文
0℃
用oracle sql对数字进行操作: 取上取整、向下取整、保留N位小数、四舍五入、数字格式化 取整(向下取整): select floor(5.534) from dual; select trunc(5.534) from dual; 上面两种用法都可以对数字5.534向下取整,结果为5.
如果要向上取整 ,得到结果为6,则应该用ceil select ceil(5.534) from dual;
四舍五入: SELECT round(5.534) FROM dual; SELECT round(5.534,0) FROM dual; SELECT round(5.534,1) FROM dual; SELECT round(5.534,2) FROM dual; 结果分别为 6, 6, 5.5, 5.53
保留N位小数(不四...
oracle, sql阅读全文
0℃
1. IN 子句中的LIST个数最长为1000,超过该数目将报错,这里可转用一个临时表来解决;2. * CREATE TRIGGER语句文本的字符长度不能超过32KB(触发器中不能使用LONG, LONG RAW 类型;触发器内可以参照LOB 类型列的列值,但不能通过 :NEW 修改LOB列中的数据;)顺便说一下,触发器中的PARENT关键字,只在嵌套表触发器中有效,3. * 11G以前,DBMS_SQL对输入的SQL长度不能超过32K,原因是输入参数只能是VARCHAR2类型,11G后,可以用CLOB作为输入参数,则取消了这个限制3. * 一个PL/SQL的包、过程、函数、触发器的...
oracle阅读全文
0℃
一、技术点 1、 DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>'abc') a from Dual时,却有错误提示,看来该函数只能直接在程序包中调用,不能直接应用于SELECT语句。 2、Utl_Raw.Cast_To_Raw DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW类型,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换
二、应用
1、直接调用
declare
v2 varchar2(32);
begin
v2 := Utl_Raw.Cast_To_Raw(sys.dbms_obfuscation_...
MD5, oracle阅读全文
0℃