【发布时间】:2016-04-07 13:58:19
【问题描述】:
我正在使用 Oracle PL/SQL 游标。我创建了一个光标,但我无法打开它。我收到如下错误:
Error(51,13): PLS-00320: 该表达式的类型声明不完整或格式错误
打开游标语句也出现错误。
这是我的代码:
DECLARE
uldid uldlog.uldid%type;
flightlegid uldlog.flightlegid%type;
TYPE rec IS RECORD (uldid number, uldlog number);
--CURSOR some_cursor RETURN rec;
CURSOR distUld return rec;
ress rec;
BEGIN
MainQuery1 :='select uldlog.uldid, uldlog.flightlegid
from uldlog
INTO distUld
INNER JOIN flightulds ON uldlog.uldid = flightulds.flightuldsid
INNER JOIN M_ULDTYP ON FLIGHTULDS.ULDTYPEID = M_ULDTYP.ULDTYPID
INNER JOIN FLIGHTLEG ON FLIGHTLEG.FLIGHTLEGID = FLIGHTULDS.INFLIGHTLEGID
INNER JOIN FLIGHTS ON FLIGHTLEG.FLIGHTID = FLIGHTS.FLIGHTID
INNER JOIN M_AIRLINE A on A.AIRLINEID = FLIGHTS.AIRLINEID
INNER JOIN m_flighttyp on m_flighttyp.Id=FLIGHTLEG.SERVICETYPEID
INNER JOIN m_pax_fr on m_pax_fr.id=m_flighttyp.pax_fr_id
where flightulds.uldtypeid IN (3,4,5,8,9)';
FinalQuery1 := MainQuery1 || CommonFilterCluase || ' GROUP BY uldlog.uldid, uldlog.flightlegid';
EXECUTE IMMEDIATE FinalQuery1;
OPEN distUld;
LOOP
FETCH distUld into ress;
EXIT WHEN distUld%notfound;
NumberOfUldsDistinctEntires := NumberOfUldsDistinctEntires +1;
IF fn_bdtimedifference(uldid,flightlegid,FlightTypeIds,CargoType,CargoPriority,UldTypes,SlaStatusCommaSeparatedNumbers) is null then
Bd_Avg_Time := Bd_Avg_Time + 0;
Else
Bd_Avg_Time := Bd_Avg_Time + fn_bdtimedifference(uldid,flightlegid,FlightTypeIds,CargoType,CargoPriority,UldTypes,SlaStatusCommaSeparatedNumbers);
END IF;
END LOOP;
CLOSE distUld;
END;
我做错了什么?
【问题讨论】: