语句看以没有错语,但建义不要用goto标号.
-------------------------------------
select count(*) into nCount from 库存清理临时信息;
if nCount>0
then
open CUR1;
<<LABEL1>>
fetch CUR1 into ROW1;
insert into 厂家库存信息 (材料编号,厂家编号,厂家物资,库存数量,价格)
values (ROW1.材料编号,ROW1.厂家编号,CHJFLAGE,ROW1.库存数量,ROW1.价格);
nCount := nCount-1;
if nCount>0
then
goto LABEL1;
end if;
close CUR1;
end if;修改为:
for v_CUR in CUR1 loop
insert into 厂家库存信息 (材料编号,厂家编号,厂家物资,库存数量,价格)
values (v_CUR.材料编号,v_CUR.厂家编号,CHJFLAGE,v_CUR.库存数量,v_CUR.价格);
end loop;
-------------------------------------
select count(*) into nCount from 库存清理临时信息;
if nCount>0
then
open CUR1;
<<LABEL1>>
fetch CUR1 into ROW1;
insert into 厂家库存信息 (材料编号,厂家编号,厂家物资,库存数量,价格)
values (ROW1.材料编号,ROW1.厂家编号,CHJFLAGE,ROW1.库存数量,ROW1.价格);
nCount := nCount-1;
if nCount>0
then
goto LABEL1;
end if;
close CUR1;
end if;修改为:
for v_CUR in CUR1 loop
insert into 厂家库存信息 (材料编号,厂家编号,厂家物资,库存数量,价格)
values (v_CUR.材料编号,v_CUR.厂家编号,CHJFLAGE,v_CUR.库存数量,v_CUR.价格);
end loop;
解决方案 »
- Oracle 表函数
- 急,大虾们帮看看这个 表连接查询的问题
- 关于用户访问指定表空间的问题。
- 在不重新建表的情况怎么改变表中某一个列的排列次序?或者新插入一列到表的最前面.
- 关于逻辑备份的几个问题,在线等!
- 我分组搜索每组的个数,但如果个数是0的话为什么就不显示出来的了
- 真心求助:帮我解决长字符匹配数据库中的短字符
- select * from t_customer where 1=row_ctrl(4086,MANAGER_POSITIONID,1044,'T_CUSTOMER')是什么意思
- 再问存储过程中,临时表的建立问题?
- 树形明细报表分类小计(根据科目类型),合计问题,急!!
- 一个问题?急!急!急!
- 然后在p4的机子上装Oracle9i?
“GRADE1 物资基本信息.一级分类%TYPE”
修改成 “GRADE1 IN 物资基本信息.一级分类%TYPE”试试。
(GRADE1 物资基本信息.一级分类%TYPE,GRADE2 物资基本信息.二级分类%TYPE,
GRADE3 物资基本信息.三级分类%TYPE,GRADE4 物资基本信息.四级分类%TYPE,
CHANGJIA 供应商基本信息.厂家名称%TYPE,CHJFLAGE 厂家库存信息.厂家物资%TYPE)
as
CURSOR CUR1 is select * from 库存清理临时信息;
ROW1 库存清理临时信息%rowtype;
nCount number;
nCaiLiao number;
nChangJia number;
begin
select 材料编号 into nCaiLiao from 物资基本信息 where 一级分类='||GRADE1||' and 二级分类='||GRADE2||' and 三级分类='||GRADE3||'
and 四级分类='||GRADE4||';
select 厂家编号 into nChangJia from 供应商基本信息 where 厂家名称='||CHANGJIA||';
delete from 库存清理临时信息;
insert into 库存清理临时信息 select 材料编号,厂家编号,价格,count(*) 记录数量,sum(库存数量) 库存数量
from 厂家库存信息 where 材料编号='||nCaiLiao||' and 厂家编号='||nChangJia'|| and 厂家物资='||CHJFLAGE||'
group by 材料编号,厂家编号,价格;
delete from 厂家库存信息 where 材料编号='||nCaiLiao||' and 厂家编号='||nChangJia||' and 厂家物资='||CHJFLAGE||';
select count(*) into nCount from 库存清理临时信息;
if nCount>0
then
open CUR1;
<<LABEL1>>
fetch CUR1 into ROW1;
insert into 厂家库存信息 (材料编号,厂家编号,厂家物资,库存数量,价格)
values (ROW1.材料编号,ROW1.厂家编号,CHJFLAGE,ROW1.库存数量,ROW1.价格);
nCount := nCount-1;
if nCount>0
then
goto LABEL1;
end if;
close CUR1;
end if;
delete from 库存清理临时信息;
end;
我觉得好象是数据上的问题,建议加例外。
比如select into语句选出来的记录唯一吗?
另外最好加commit,不然delete 完又insert又delete,不知道
中间发生了什么事情?!
贴主把这段代码放在TOAD里面编译一下看到底那句出错,也好
有的放矢。