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组件,请问这是什么原因?
解决方案 »
- 求一个SQL语句
- recover database until cancel using backup controlfile; 是从哪里恢复的控制文件?
- 数据库启动不能,高手请进!
- JAVA读取文本文件,然后执行该SQL语句,出现java.sql.SQLException: ORA-00911: invalid character报错
- 在线求助!!急!关于列索引的问题。
- 中文数据从 Oracle 到 SqlServer 传输的问题?
- 才鸟的问题
- 如何登录Oracle Management Server ?感谢!
- 什么是回滚段,以及表空间(数据表空间、索引表空间、回滚表空间、临时表空间)这是些什么东西呀?
- 我要某字段的总计值和跟着我的查询结果一起出来,不用group by行不行?
- 急,求助
- 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; 出错