1. 所有SQL语句中表名和字段不要带双引号。表名或字段带双引号时,表示区分大小写,如果数据库中表名是test,sql语句是update “TEST” set name=’1’,会提示没有TEST这个表
2. 建表语句varchar2类型长度后不能有BYTE或CHAR
CREATE TABLE DT_AUDITRECORD (
ID VARCHAR2(36 BYTE) NOT NULL );
CREATE TABLE DT_AUDITRECORD (
ID VARCHAR2(36 CHAR) NOT NULL )
应该为
CREATE TABLE DT_AUDITRECORD (
ID VARCHAR2(36) NOT NULL )
3. 添加字段时字段名及类型不需要用小括号括起来
ALTER TABLE TB_POWERWARNRESPONSE
ADD (PWR_ISCOMPANY NUMBER);
应该为
ALTER TABLE TB_POWERWARNRESPONSE
ADD PWR_ISCOMPANY NUMBER;
4. 加字段时不支持一条语句添加多个多段,要分开执行
ALTER TABLE TB_POWERWARNRESPONSE
ADD PWR_ISCOMPANY NUMBER
ADD PWR_COMPANYNAME VARCHAR2(300);
要分成多条语句
ALTER TABLE TB_POWERWARNRESPONSE
ADD PWR_ISCOMPANY NUMBER;
ALTER TABLE TB_POWERWARNRESPONSE
ADD PWR_COMPANYNAME VARCHAR2(300);
5. FLOAT 类型默认值空字符串’’非法: MITV_LATITUDE FLOAT(53) DEFAULT '' NULL ,
6. TIMESTAMP 类型默认值空字符串’’非法: TIMESTAMP(6) DEFAULT '' NULL
7. TIMESTAMP类型精度最高是6,即TIMESTAMP(6)
8. 建表时int类型不带长度,number类型带长度
9. int类型后面不能有unsigned
10. TO_DATE语句修改
oracle的sql语句中的TO_DATE函数可以用双引号包住如"TO_DATE",但ppas不支持这种写法需要把"TO_DATE"改为TO_DATE,去掉双引号即可。
11. TO_CHAR语句修改,同上,去掉双引号
12. float类型精度长度<=53
AF_LONGITUDE FLOAT(53) NULL ,
AF_LATITUDE FLOAT(53) NULL ,
13. 创建表时,表后不能有 LOGGING NOCOMPRESS NOCACHE
需删除标红内容
CREATE TABLE CFG_CONFIGURATION (
PK_C VARCHAR2(300) NOT NULL ,
C_VALUE VARCHAR2(1500) NOT NULL
)
LOGGING
NOCOMPRESS
NOCACHE
;
14. 创建索引时,不能有 LOGGING VISIBLE;
15. 参考邮件中的时间转换修改
oracle支持时间转换为number,而ppas不支持,举例如下并给出修改。
PPAS不支持的语句:
sql = sql + " AND ROUND(TO_NUMBER(TO_DATE(TO_CHAR(" + feedbackTime + ", 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') - TO_DATE(TO_CHAR(" + sendTimeName + ", 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss'))*24*60) > 4320";
修改后ppas支持的语句:
sql = sql + " AND TO_DATE(TO_CHAR(" + feedbackTime + ", 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') - TO_DATE(TO_CHAR(" + sendTimeName + ", 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') > interval '3d'";
16. 代码中用到HibernateHelper.isOracle()的地方需要处理