darkpoon 发表于 2016-11-19 03:09:10

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));
页: [1]
查看完整版本: DB2,Oracle数据库SQL比较