首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

抢救,大侠,过程出错了

2012-06-20 
急救,大侠,过程出错了!CREATE OR REPLACE PROCEDURE vsvs(P_lotnumber xx_test_ta.a%TYPE)ISBEGINUPDATE x

急救,大侠,过程出错了!
CREATE OR REPLACE PROCEDURE vsvs(P_lotnumber xx_test_ta.a%TYPE)IS
BEGIN
UPDATE xx_test_employees SET salary = 0 WHERE employeeid = p_lotnumber;
END;
/

xx_test_employeeid表的结构为

C# code
employeeid  name    salary001         五小越    1200002         Wilson    1100003         bryn      1200004         Beng      5900005         yes       12000006         King      8900


xx_test_ta表的结构为
C/C++ code
A001002003004005006


C# code
DECLARE   v_name VARCHAR2(1000);BEGIN  SELECT A INTO v_name FROM xx_kja_test_ta;  vsvs(v_name);END;


结果报错了。Ora-01422:exact fetch returns more than requested number of rows


请问,如此写一个过程用来更新数据的!求求!谢谢


[解决办法]
--你的查询语句返回的值多了,要用循环
DECLARE
v_name VARCHAR2(1000);
BEGIN
for i in (SELECT A FROM xx_kja_test_ta)
loop 
vsvs(i.A);
end loop;
END;

热点排行