从达梦数据库适配oracle数据库问题合集

ORA-00923: 未找到要求的 FROM 关键字

sql代码如下:

1
2
3
select *,
row_number() over (partition by projectid order by createtime desc) rn
from c_ins_business_info

报错:

1
2
java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字;
bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字

如果有全选*的,需要在前面加上改表的简写或全称。
修改后sql

1
2
3
select info.*,
row_number() over (partition by projectid order by createtime desc) rn
from c_ins_business_info info

ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

sql如下:

1
round(sum(case when substr(psortparent,13,1) in ('B','C','D','E') then grossinvestment else 0 end)/10000,2) "d2",

在这里,grossinvestmentnumber 类型
报错:

1
2
java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER;
bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER

不知道为什么,这里的0要加上引号,也是醉了。
修改后sql

1
round(sum(case when substr(psortparent,13,1) in ('B','C','D','E') then grossinvestment else '0' end)/10000,2) "d2",