ORACLE和DB2实现相同功能的实例(主要以Oracle8I和DB2 7.X为例,已测试)
|
取前N条记录
|
Oracle
|
Select * from TableName where rownum <= N;
|
DB2
|
Select * from TableName fetch first N rows only;
|
取得系统日期
|
Oracle
|
Select sysdate from dual;
|
DB2
|
Select current timestamp from sysibm.sysdummy1;
|
空值转换
|
Oracle
|
Select productid,loginname,nvl(cur_rate,'0') from TableName ;
|
DB2
|
Select productid,loginname,value(cur_rate,'0') from TableName;
|
类型转换
|
Oracle
|
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
|
DB2
|
select varchar(current timestamp) from sysibm.sysdummy1;
|
|
■Oracle数据类型改变函数:to_char()、to_date()、to_number()等;如果仅仅取年,月,日等,可以用to_char(sysdate, 'YYYY'),to_char('MM') ,to_char('DD')取得。只取年月日TRUNC(SYSDATE),取时分秒TO_CHAR(SYSDATE,'HH24:MI:SS')。
|
■DB2数据类型改变函数:char()、varchar()、int()、date()、time()等;取得年,月,日等的写法:YEAR(current timestamp),MONTH(current timestamp),DAY(current timestamp),HOUR(current timestamp),MINUTE(current timestamp),SECOND(current timestamp), MICROSECOND(current timestamp),只取年月日可以用DATE(current timestamp),取时分秒TIME(current timestamp)。Char()是定长字符串(1-255),varchar()为非定长字符串(1-32672) 日期,时间形态变为字符形态: char(current date),char(current time) 将字符串转换成日期或时间形态:TIMESTAMP('2002-10-20 12:00:00'),DATE('2002-10-20'),DATE('10/20/2002'),TIME('12:00:00')
|
快速清空大表
|
Oracle
|
truncate table TableName ;
|
DB2
|
alter table TableName active not logged initially with empty table;
|
关于ROWID
|
Oracle
|
它是由数据库唯一产生的,在程序里可以获得
|
DB2
|
有此概念,但不能被程序获得。解决方案待定(高人请联系本人 caoxicao@hotmail.com )。
|
To_Number
|
Oracle
|
select to_number('123') from dual;
|
DB2
|
select cast('123' as integer) from sysibm.sysdummy1;
|
复制创建表
|
Oracle
|
create table a as select * from b ;
|
DB2
|
create table a like b ;
|