数据库timesten与 oracle 处理日期上写法上的不同
由于公司业务增长较快,数据库oracle压力越来越大,公司考虑在应用服务器 Websphere 和 数据库oracle之间增加 timesten数据库来实现数据的读写分离,另外由于timesten是内存数据库,所以查询速度上要优于 oracle 数据库,两个数据库虽然都是oracle公司的产品,但是在很多sql的写法上是不相同的,下面就对此项工作中遇到的sql不同的写法做个介绍:
oracle中查询当前日期的前23小时可以这样写
<code> select sysdate - 23/24 from dual; </code>
这样的写法在timesten中是会报错的,两个数据库通用的写法是这样的
<code> select SYSDATE - INTERVAL '23' hour
from dual; </code>
但是有另外的关于to_date的就没有通用的写法了
oracle中可以这样写
<code> (to_date(?,'yyyy-mm-dd') - trunc(sysdate)) </code>
但是在timesten中只能这样写
<code> (EXTRACT(day from to_date(?,'yyyy-mm-dd') - trunc(sysdate))) </code>
暂时只发现这两种写法的不同了,而且第二种写法还没有找到两边通用的写法,后续的工作中发现了再贴上来
相关文档:
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pki ......
CREATE OR REPLACE FUNCTION F_HPS_SPLIT
/*
* 功 能: split.
* 输入参数: Liststr string
* 输入参数: Sepe index
* 输入参数: Sepe separator. default is ','.
* return sepeCount
*/
(
......
其实这个很简单就安装三个包就可以了,分别是:
IO-Tty-1.07.tar.gz,Term-ReadLine-Gnu-1.16.tar.gz, uniread-1.01.tar.gz。
这三个包在我的空间里都有 http://fwx515354.download.csdn.net/
解压
tar -zxvf IO-Tty-1.07.tar.gz
tar -zxvf Term- ......
第一种:
select b.* from
( select a.*, rownum row_num from
(select t.* from A05_ORGANIZATION t order by org_name_en asc) a
) b
where b.row_num between 1 and 5 order by b.row_num asc
第二种(更高效):
select b.* from
( select a.*, rown ......