频道栏目
首页 > 数据库 > Oracle > 正文
ORA-01422与ORA-01403错误解决
2012-06-22 17:24:07           
收藏   我要投稿

ORA-01422与ORA-01403错误解决

 

添加一个'AFTER LOGON ON DATABASE'的trigger以后,发现日志中出现如下错误片段:

 

1

ORA-00604: 递归 SQL 级别 1 出现错误

2

ORA-01422: 实际返回的行数超出请求的行数

3

ORA-06512: 在 line 5
 

检查了trigger中的查询语句后,发现以下查询的确是返回了多行数据:

  www.2cto.com  

1

select username,SYS_CONTEXT('USERENV','IP_ADDRESS') 

2

into v_username,v_ip

3

from sys.v_$session where AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID');
 

在后面加入了过滤条件,完整语句如下:

 

1

select username,SYS_CONTEXT('USERENV','IP_ADDRESS') 

2

into v_username,v_ip

3

from sys.v_$session where AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID')

4

 and upper(username) not in ('SYS') and type<>'BACKGROUND';
 

解决此问题后,发现报了另外一个错误:

1

ORA-04088: error during execution of trigger '...'

2  www.2cto.com  

ORA-01403: no data found

3

ORA-06512: at line 5

加入如下异常处理语句后解决:

 

1 EXCEPTION

2 WHEN NO_DATA_FOUND

3 THEN

4 ...

 

 

作者 旺仔的钥匙

点击复制链接 与好友分享!回本站首页
相关TAG标签 错误
上一篇:oracle_用户只有访问其他用户视图的权限
下一篇:oracle中varchar类型的日期格式转换date类型
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站