背景
近期,正在熟悉mybatis的开发,但是通过这个学习过程,发现还是遇到不少的坑,于是自己就记录下期间遇到的坑,方便自己以后复习,和遇到时方便再次查找。
sql相关
1. ORA-00913: 值过多
由于自己使用的是判断一个字段是否在某个子查询的返回结果中。但是由于自己的子查询写成了查询*,这个时候,就爆出了这个错误。因此希望自己在写sql时可以更加细心一些。
2. ORA-01427 单行子查询返回多个行
由于自己没有注意到查询结果不是唯一的,含有重复数据,导致在子查询中返回的结果存在多条数据而报错
3. ORA-02287:此处不允许序号
不允许使用序列号的情况有:
- 在delete,select,update子查询中
- 视图的查询
- select语句中使用了distinct
- select语句中使用了order by 或者group by
- 一条select语句与另外一条带有union、intersectminus集运算符的select语句结合使用
- select语句的where子句
- 在创建表的时候,含有默认值的这列
- 含有check约束条件的列
4. 两表求交集和差集
intersect运算,minus运算可以进行并集和差集的运算
5. 根据条件选择是否插入
此使可以使用merge into进行条件判断是否选择进行插入