oracle异常汇总

1. ORA-01536: 超出表空间system的空间限量

赋予用户权限和角色如下:

系统权限              管理选项
create procedure       x
create table  x
create tablespace x
unlimited tablespace x

角色        管理选项  默认值
connect   x  勾选
resource  x  勾选

如果仅仅是测试,可以直接赋予dba角色,跟system表空间大小无关。

2.ORA-30019:自动撤消模式中的回退段操作非法。

D:\oracle\admin\ora1128\pfile\init.ora
###########################################
# 系统管理的撤销和回退段
###########################################
undo_management=AUTO  
undo_retention=10800
undo_tablespace=UNDOTBS 

找到ora实例名,如ora1128文件夹下面的init.ora文件,修改undo_management=manual

3.ORA-00979: 不是 GROUP BY 表达式

分组数据:  GROUP BY 子句语法
可以使用GROUP BY 子句将表中的数据分成若干组
在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。
SQL> select employee_id,avg(salary) from employees group by employee_id;
包含在 GROUP BY 子句中的列不必包含在SELECT 列表中
所用包含于SELECT 列表中,而未包含于组函数中的列都必须包含于 GROUP BY 子句中,
否则会报错:第 1 行出现错误:  ORA-00979: 不是 GROUP BY 表达式 注意:
不能在 WHERE 子句中使用组函数(注意)。
可以在 HAVING 子句中使用组函数。

4.ORA-01873: 间隔的前导精度太小

原SQL:select trunc(sysdate) + interval '100' day from dual;

新SQL:select TO_CHAR(SYSDATE + INTERVAL '100' DAY(3), 'YYYYMMDD') from dual;

 

你可能感兴趣的:(oracle)