declare
sku_code STANDARD_STOCK.sku%type;
cursor rad_cursor is
select * from STANDARD_STOCK where stockdate='09/04/02';
rad_val STANDARD_STOCK%rowtype;
begin
open rad_cursor;
loop
fetch rad_cursor into rad_val;
exit when rad_cursor%notfound;
sku_code := rad_val.sku;
end loop
close rad_cursor;
end;show error;查看错误信息
sku_code STANDARD_STOCK.sku%type;
cursor rad_cursor is
select * from STANDARD_STOCK where stockdate='09/04/02';
rad_val STANDARD_STOCK%rowtype;
begin
open rad_cursor;
loop
fetch rad_cursor into rad_val;
exit when rad_cursor%notfound;
sku_code := rad_val.sku;
end loop
close rad_cursor;
end;show error;查看错误信息
2 sku_code STANDARD_STOCK.sku%type;
3 cursor rad_cursor is
4 select * from STANDARD_STOCK whe
5 rad_val STANDARD_STOCK%rowtype;
6 begin
7 open rad_cursor;
8 loop
9 fetch rad_cursor into rad_val;
10 exit when rad_cursor%notfound;
11 sku_code := rad_val.sku;
12 end loop
13 close rad_cursor;
14
15 end;
16 /
close rad_cursor;
*
ERROR 位于第 13 行:
ORA-06550: 第 13 行, 第 9 列:
PLS-00103: 出现符号 "RAD_CURSOR"在需要下列
;
符号 ";" 被替换为 "RAD_CURSOR" 后继续。
2 sku_code STANDARD_STOCK.sku%type;
3 cursor rad_cursor is
4 select * from STANDARD_STOCK whe
5 rad_val STANDARD_STOCK%rowtype;
6 begin
7 open rad_cursor;
8 loop
9 fetch rad_cursor into rad_val;
10 exit when rad_cursor%notfound;
11 sku_code := rad_val.sku;
12 end loop;
13 close rad_cursor;
14
15 end;
2 sku_code STANDARD_STOCK.sku%ty
3 cursor rad_cursor is
4 select * from STANDARD_STOCK
5 rad_val STANDARD_STOCK%rowtype
6 begin
7 open rad_cursor;
8 loop
9 fetch rad_cursor into rad_va
10 exit when rad_cursor%notfound;
11 sku_code := rad_val.sku;
12 end loop;
13 close rad_cursor;
14
15 end;
16 /
rad_val STANDARD_STOCK%rowtype;
*
ERROR 位于第 5 行:
ORA-06550: 第 5 行, 第 7 列:
PLS-00103: 出现符号 "RAD_VAL"在需要下列之
,;forgrouphaving
intersectminusorderstartunionwhereconnect
符号 ";" 被替换为 "RAD_VAL" 后继续。不行啊,帮我搞定,我再开贴给分啊,表名是STANDARD_STOCK,列SKU类型是CHAR(8)
sku_code char(8);
CURSOR rad_cursor RETURN STANDARD_STOCK%ROWTYPE IS
SELECT * FROM STANDARD_STOCK;
rad_val rad_cursor%rowtype;
begin
open rad_cursor;
loop
fetch rad_cursor into rad_val;
exit when rad_cursor%notfound;
sku_code := rad_val.sku;
end loop;
close rad_cursor;
end;
/
你少了分号
declare
sku_code number(7);
cursor rad_cursor is
select * from STANDARD_STOCK
where stockdate='09/04/02';--多条记录还是一条记录?
--stockdate是字符型?
rad_val rad_cursor%rowtype; --没问题,我一直这么用。
begin
open rad_cursor;
loop
fetch rad_cursor into rad_val;
exit when rad_cursor%notfound;
sku_code := rad_val.sku; --可疑,sku_code 是number(7)型,
--sku是 char(8)
end loop
close rad_cursor;
end;而且这里面,取出来的好象只是cursor中的最后一条记录吧,其他记录都没保存下来 啊。
declare
sku_code number(7); 这里定义错了,应该是CHAR(8)
cursor rad_cursor is
select * from STANDARD_STOCK
where stockdate='09/04/02';--多条记录还是一条记录?
--stockdate是字符型?多条记录
rad_val rad_cursor%rowtype; --没问题,我一直这么用。
begin
open rad_cursor;
loop
fetch rad_cursor into rad_val;
exit when rad_cursor%notfound;
sku_code := rad_val.sku; --可疑,sku_code 是number(7)型,
--sku是 char(8)对
end loop
close rad_cursor;
end;而且这里面,取出来的好象只是cursor中的最后一条记录吧,其他记录都没保存下来 啊。
我是最终目标是将数据经过处理写到另一张表,不过这里只是作为测试方法的正确性,这里正确了下一步就方便了
领分等下就结帐