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 ,有可能就是这个原因

 

 

posted on 2018-06-25 17:27  dreamstar  阅读(103)  评论(0编辑  收藏  举报