oracle 11g ORA-01422实际返回的行数超出请求的行数 |
发表者:admin分类:数据库2017-02-27 15:57:01 阅读[2158] |
oracle 11g ORA-01422实际返回的行数超出请求的行数
insert into te_user (PSN_ID, PSN_ACCOUNT, PSN_PWD, PSN_NAME, PSN_DESC, PSN_LEVEL, HISTORY_PWD1, HISTORY_PWD2, HISTORY_PWD3, TEMP_PWD, BILL_NUM, ISVALUE, SIM, ISMSG_LOGIN, VALU_ETIME, ISMSG, TEMP_PWD_TIME, HISTORY_PWD4, BOTTOMLEFTX, BOTTOMLEFTY, TOPRIGHTX, TOPRIGHTY, STARTTIME, UPDATETIME, SECURITY_FLAG) values ('527be121a32e1', '15908000000', '72IuaAS8Wj, null, null, '1', 'vInaLBzHJ, null, null, null, '9003000000', null, '15908000000', null, 1487590404, null, null, null, 411288728, 110098230, 411455622, 110234034, 1487217447, null, 1)
第 1 行出现错误:
ORA-01422: 实际返回的行数超出请求的行数ORA-06512: 在 "CM.AFTER_INSERTUSER_GROUP", line 10
ORA-04088: 触发器 'CMAFTER_INSERTUSER_GROUP' 执行过程中出错
查看对应触发器,脚本内容如下:
CREATE OR REPLACE TRIGGER after_insertuser_group
after insert on te_user
for each row
declare
v_group_id VARCHAR2(50);
countSize varchar(10);
begin
if inserting then
if :new.psn_level=1 then
select count(*) into countSize from TR_GROUP t1 where t1.bill_num=:new.bill_num and t1.group_type='1';
if countSize>0 then
select t.group_id into v_group_id from TR_GROUP t where t.bill_num=:new.bill_num and t.group_type='1';
insert into tr_user_group(psn_id, group_id, group_ord)values(:new.psn_id, v_group_id, 0);
else
insert into tr_user_group(psn_id, group_id, group_ord)values(:new.psn_id, 'null', 0);
end if;
end if;
end if;
end after_insertuser_group;
然后查看相关表数据信息:
发现返回信息有4条数据,
但是select into是隐式游标,只能传一个内容进去,在返回多行与没有返回数据的时候都会报错。
不然就是insert 表时也会报错.
转载请标明出处【oracle 11g ORA-01422实际返回的行数超出请求的行数】。
《www.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论