DB2,Oracle数据库SQL比较

项目上DB2和Oracle数据库使用的比较多,所以sql语句要经常检查在两种数据库上的正确性。现小结一下:

--获取前8行数据

DB2:SELECT * FROM TABLE_NAME FETCH FIRST 8 ROWS ONLY;

ORACLE:SELECT * FROM TABLE_NAME WHERE ROWNUM <= 8;

--获取当前时间

DB2:SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;

1 --2013-12-11 16:26:11
2 SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;
3 --2013-12-11
4 SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1;
5 --16:26:41
6 SELECT CURRENT TIME FROM SYSIBM.SYSDUMMY1;
View Code

ORACLE:SELECT SYSDATE FROM DUAL;

--类型转换

DB2:SELECT VARCHAR(CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1;

1 --2013-12-11-16.35.30.857591
2 SELECT VARCHAR(CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1;
3 --2013-12-11
4 SELECT DATE(CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1;
5 --100
6 SELECT INT(100.1) FROM SYSIBM.SYSDUMMY1;
View Code

ORACLE:SELECT to_char(sysdate,yyyy-mm-dd hh24:mi:ss) from dual

--新增字段

DB2:ALTER TABLE TABLE_NAME ADD COLUMN SEX CHAR(2) ADD COLUMN AGE INT;

ORACLE:ALTER TABLE TABLE_NAME ADD (b number,c number);

--修改字段

DB2:不允许修改字段名:可以先删除字段,再添加字段

   ,不允许减小长度:可以增加长度 alter table XXX alter column XXX set data type varchar(100)

   ,不允许修改字段类型:可以先删除字段,再添加字段

ORACLE:alter table t modify (b varchar2(10),c varchar2(10));

原文地址:https://www.cnblogs.com/mayt-/p/3469698.html