Oracle 一些报错
oracle 删除数据时遇到问题: ORA-02292: integrity constraint (用户名.约束名) violated - child record found
参考 ORA-02292: integrity constraint (BLDBANK.F_YXDH) violated - child record found
解决办法:
1、 找出父表(需要删除表数据的表)所属用户,然后用此用户登录数据库(若已经使用此用户登录则省略此部)
select * from all_tables where table_name=upper('t_parent') ; t_parent是父表、要删除数据的表
2、 根据约束名查找子表(引用父表字段作为外键的表)
select * from user_constraints e where e.constraint_name='FK_PARENT' ; FK_PARENT是报错时的约束名
3、 根据条件将子表中的数据删除,然后再删除父表中的记录
oracle 插入数据时遇到问题 ORA-00001: unique constraint (XX.SYS_C0011222) violated 违反唯一约束条件
参考 ORA-00001: unique constraint (XX.SYS_C0011222) violated 违反唯一约束条件
正确顺序应该是:
1)先创建表
2)录入已有数据
3)通过SELECT seq_tq_auth_rule.nextval FROM dual;查看下一个id是多少
4)创建Sequence,将START WITH 值改成下一个ID值
或者如果已经创建了sequence,已经创建表,已经录了已有数据,
可以通过循环执行SELECT seq_tq_auth_rule.nextval FROM dual,使它的nextval大于已有的最大id
oracle group by 报错:[Err] ORA-00979: not a GROUP BY expression
原因:出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中
解决:可以把需要查询的列 放入group by子句中,或者把需要查询的列 放入聚合函数中,比如max(t_table_column)
使用order by排序时order by子句置于group by 之后 并且 order by 子句的排序标准不能出现在select查询之外的列
mysql group by
在mysql中没有强调select指定的字段必须属于group by后的条件,
如果select出来的字段在group by 后面没有,则会随机取出来一个值,这样查询出来的数据不准确
Oracle 数据库数据类型,Number(10,2) 允许10位NUMBER类型数据,允许有8位整数,小数点后2位小数
value larger than specified precision allowed for this column ,有可能就是这个原因