日期:2014-05-16 浏览次数:20361 次
1. ORA-00922:选项缺失或无效,一般是语句语法有问题。
?? ?比如命名不对,关键字写错等等。对于非标准的命名,一般采用双引号来创建。
?? ?标识符命名规则:
?? ? ?1)、必须以字母开始。
?? ? ?2)、长度不能超过30个单字节字符。
?? ? ?3)、只能包括A-Z,a-z,0-9,_,$和#。
?? ? ?4)、不能在相同用户下建立两个同名的对象。
?? ? ?5)、不能使用保留字和关键字。
?
2.ORA-00937: 不是单组分组函数
???select t.jnlno,
sum((t.transferrate - 1) * t.amount) as totalratedamount, --t.status, t.rewardflg --t.rewardjnl, --t.shopname from BUSI_BANK_TRANS_HISTORY t where t.rewardflg = '0' group by t.jnlno,t.rewardflg
?? 上面的查询使用了除了包含聚合函数外,还包含了表的某些列,那么你将必须使用group by语句,否则语法通不过。
?? 上面除了聚合函数,还有jnlno,status,rewardfla等,下面的group by都要包含。
?
3.ORA-01756: 引号内的字符串没有正确结束
?
sql.append(" where t.rewardflg = '0' ");
?
???0后面的单引号写掉了一个
?
4.ORA-01747: user.table.column, table.column 或列说明无效
?? 我的sql错误:
??? update busi_bank_trans_history t set t.status = '1', where t.status = '5'
?? 多了个逗号。
???1).表,或者表中的列无效,检查下表,列是否存在
???2).与ORACLE保留字有关 ,建表不能用oracle保留字。
?? 执行下面语句可以查看oracle关键字:
?? select * from v$reserved_words
??????