create or replace procedure aaa_c1 isdeclare cursor c1 is
select t1.eqpid,t1.curmainqty,t1.lotid,t2.batch_type,t2.operator_type ,t1.menugroup menu,t1.trackintime
from rep_batchgroup@dbre T1,rep_eqpid_eff t2
where t1.eqpid=t2.eqpid
and t2.batch_type='0' and t2.operator_type='3'
order by t1.eqpid,t1.trackintime ;cursor c2(p_curmainqty number,p_eqpid varchar2,p_menugroup varchar2) is
select processtime*p_curmainqty spt
from csmc.mult_chamber_data@guip
where menustatus='1' and eqpid=p_eqpid and menugroup=p_menugroup;cursor c3(p_curmainqty number,p_eqpid varchar2,p_menugroup varchar2) is
select (processtime*p_curmainqty+operationtime)spt
from csmc.mult_chamber_data@guip
where menustatus='1' and eqpid=p_eqpid and menugroup=p_menugroup;
TYPE c1_type IS TABLE OF c1%rowtype
INDEX BY BINARY_INTEGER;
TYPE c2_type IS TABLE OF c2%rowtype
INDEX BY BINARY_INTEGER;
TYPE c3_type IS TABLE OF c3%rowtype
INDEX BY BINARY_INTEGER;
c1_rec c1_type;
c2_rec c2_type;
c3_rec c3_type;----create table rep_eqpid_eff_oee1
---(lotid varchar2(20),curmainqty number,eqpid varchar2(8),menugroup varchar2(70),
----trackintime date,batch_type varchar2(1),operator_type varchar2(1),spt number)i number:=1;
tot_num1 number:=1;
v_eqpid varchar2(8);
v_menugroup varchar2(70);begin
open c1;
i:=1;
loop
fetch c1 into c1_rec(i);
exit when c1%notfound;
i:=i+1;
end loop;
close c1;
tot_num1:=i-1;i:=1;
open c3(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu);
fetch c3 into c3_rec(i);insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c3_rec(i).spt);
v_eqpid:=c1_rec(i).eqpid;
v_menugroup:=c1_rec(i).menu;DBMS_OUTPUT.PUT_LINE(v_eqpid);
DBMS_OUTPUT.PUT_LINE(v_menugroup);i:=i+1;
for i in 2..tot_num1
loop
--- if c1_rec(i).eqpid=v_eqpid and c1.rec(i).menugroup=v_menugroup then
-- open c2(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menugroup);
-- fetch c2 into c2_rec(i);
-- insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
--- values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c2_rec(i).spt);
--- else
--- open c3(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menugroup);
--- fetch c3 into c3_rec(i);
--- insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
---- values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c3_rec(i).spt);
--- end if ;
v_eqpid:=c1_rec(i).eqpid;
v_menugroup:=c1_rec(i).memu; 出错
DBMS_OUTPUT.PUT_LINE(v_eqpid);
DBMS_OUTPUT.PUT_LINE(v_menugroup);
end loop;
end ;
出错信息为必须声明menu组件,请问这是什么原因?
select t1.eqpid,t1.curmainqty,t1.lotid,t2.batch_type,t2.operator_type ,t1.menugroup menu,t1.trackintime
from rep_batchgroup@dbre T1,rep_eqpid_eff t2
where t1.eqpid=t2.eqpid
and t2.batch_type='0' and t2.operator_type='3'
order by t1.eqpid,t1.trackintime ;cursor c2(p_curmainqty number,p_eqpid varchar2,p_menugroup varchar2) is
select processtime*p_curmainqty spt
from csmc.mult_chamber_data@guip
where menustatus='1' and eqpid=p_eqpid and menugroup=p_menugroup;cursor c3(p_curmainqty number,p_eqpid varchar2,p_menugroup varchar2) is
select (processtime*p_curmainqty+operationtime)spt
from csmc.mult_chamber_data@guip
where menustatus='1' and eqpid=p_eqpid and menugroup=p_menugroup;
TYPE c1_type IS TABLE OF c1%rowtype
INDEX BY BINARY_INTEGER;
TYPE c2_type IS TABLE OF c2%rowtype
INDEX BY BINARY_INTEGER;
TYPE c3_type IS TABLE OF c3%rowtype
INDEX BY BINARY_INTEGER;
c1_rec c1_type;
c2_rec c2_type;
c3_rec c3_type;----create table rep_eqpid_eff_oee1
---(lotid varchar2(20),curmainqty number,eqpid varchar2(8),menugroup varchar2(70),
----trackintime date,batch_type varchar2(1),operator_type varchar2(1),spt number)i number:=1;
tot_num1 number:=1;
v_eqpid varchar2(8);
v_menugroup varchar2(70);begin
open c1;
i:=1;
loop
fetch c1 into c1_rec(i);
exit when c1%notfound;
i:=i+1;
end loop;
close c1;
tot_num1:=i-1;i:=1;
open c3(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu);
fetch c3 into c3_rec(i);insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c3_rec(i).spt);
v_eqpid:=c1_rec(i).eqpid;
v_menugroup:=c1_rec(i).menu;DBMS_OUTPUT.PUT_LINE(v_eqpid);
DBMS_OUTPUT.PUT_LINE(v_menugroup);i:=i+1;
for i in 2..tot_num1
loop
--- if c1_rec(i).eqpid=v_eqpid and c1.rec(i).menugroup=v_menugroup then
-- open c2(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menugroup);
-- fetch c2 into c2_rec(i);
-- insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
--- values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c2_rec(i).spt);
--- else
--- open c3(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menugroup);
--- fetch c3 into c3_rec(i);
--- insert into rep_eqpid_eff_oee1(lotid,curmainqty,eqpid,menugroup,trackintime,batch_type,operator_type,spt)
---- values(c1_rec(i).lotid,c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu,c1_rec(i).trackintime,0,3,c3_rec(i).spt);
--- end if ;
v_eqpid:=c1_rec(i).eqpid;
v_menugroup:=c1_rec(i).memu; 出错
DBMS_OUTPUT.PUT_LINE(v_eqpid);
DBMS_OUTPUT.PUT_LINE(v_menugroup);
end loop;
end ;
出错信息为必须声明menu组件,请问这是什么原因?
解决方案 »
- 初学Oracle关于新建数据库,服务,进程的问题!
- SQL SERVER连接oracle问题(困扰我多天了)
- 紧急求救!!:server was unable to process request,为什么??
- 求一条汇总的SQL
- toad for oracle 怎么没有自动补全功能? toad for mysql 都有。。
- oracle 10.2创建实例遇到得问题
- 如何根据两个字段排序?
- 触发器问题---在线等.有分啊.....
- 在存储过程中如何判断一个纪录已经存在呢?
- 请问哪有report builder的中文版电子书
- 急,求助
- waiting for the oracle crsd and evmd to start
open c3(c1_rec(i).curmainqty,c1_rec(i).eqpid,c1_rec(i).menu); 不报错
v_menugroup:=c1_rec(i).memu;为什么报错
c1_rec(i).menu = c1_rec(i).memu??
v_menugroup:=c1_rec(i).memu; 出错