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;
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;
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));