光标出现PL/SQL错误,错误ORA-06550



我正在学习PL/SQL,并试图创建一个过程,但我的光标有问题,我不知道它是什么,如果你能帮助我编写代码,我将不胜感激。

看看我的代码

DECLARE
TYPE T_CURSOR IS REF CURSOR;
V_CURSOR T_CURSOR;
V_STATION STATION_DATA%ROWTYPE;
BEGIN
OPEN V_CURSOR FOR SELECT * FROM STATION_DATA;
FETCH V_CURSOR INTO V_STATION;
EXIT WHEN V_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(
'STATION NUMBER = '||V_STATION.STATION_NUMBER||
'REPORT CODE = '||V_STATION.REPORT_CODE||
'YEAR = '||V_STATION.YEAR||
'MONTH = '||V_STATION.MONTH||
'DAY = ' ||V_STATION.DAY||
'DEW POINT = '||V_STATION.DEW_POINT||
'STATION PRESSURE = '||V_STATION.STATION_PRESSURE||
'VISIBILITY = '||V_STATION.VISIBILITY||
'WIND SPEED = '||V_STATION.WIND_SPEED||
'PRECIPATION = '||V_STATION.PRECIPATION||
'TEMPERATURE = '||V_STATION.TEMPERATURE||
'SNOW DEPTH = '||V_STATION.SNOW_DEPTH||
'FOG = '||V_STATION.FOG||
'RAIN = '||V_STATION.RAIN||
'HAIL = '||V_STATION.HAIL||
'THUNDER = '||V_STATION.THUNDER||
'TORNADO = '||V_STATION.TORNADO
);
END LOOP    ;
CLOSE V_CURSOR ;
END ;
/ 

您的代码缺少LOOP语句以及一些不需要的代码。

你需要这样的东西(见内联评论(:

DECLARE
--    TYPE T_CURSOR IS REF CURSOR; -- YOU DON'T NEED THIS
V_CURSOR    SYS_REFCURSOR; -- USE SYS_REFCURSOR
V_STATION   STATION_DATA%ROWTYPE;
BEGIN
OPEN V_CURSOR FOR SELECT *
FROM STATION_DATA;
LOOP -- ADDED THIS
FETCH V_CURSOR INTO V_STATION;
EXIT WHEN V_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(
'STATION NUMBER = '||V_STATION.STATION_NUMBER||
'REPORT CODE = '||V_STATION.REPORT_CODE||
'YEAR = '||V_STATION.YEAR||
'MONTH = '||V_STATION.MONTH||
'DAY = ' ||V_STATION.DAY||
'DEW POINT = '||V_STATION.DEW_POINT||
'STATION PRESSURE = '||V_STATION.STATION_PRESSURE||
'VISIBILITY = '||V_STATION.VISIBILITY||
'WIND SPEED = '||V_STATION.WIND_SPEED||
'PRECIPATION = '||V_STATION.PRECIPATION||
'TEMPERATURE = '||V_STATION.TEMPERATURE||
'SNOW DEPTH = '||V_STATION.SNOW_DEPTH||
'FOG = '||V_STATION.FOG||
'RAIN = '||V_STATION.RAIN||
'HAIL = '||V_STATION.HAIL||
'THUNDER = '||V_STATION.THUNDER||
'TORNADO = '||V_STATION.TORNADO
);
END LOOP;
CLOSE V_CURSOR;
END;
/

相关内容

最新更新