我 一段
declare v_emp t_user_p.employee_id%type ; cursor c_user is select t_user_p.employee_id from t_user_p ;
begin
open c_user;
loop
fetch c_user into v_emp ;
exit when c_user%NOTFOUND ;
if :v_emp = '09091214' then
goto X;
end if ;
-- DBMS_OUTPUT.PUT_LINE(:v_emp);
<<X>>
end loop ;
close c_user;
end
执行总是倒数第三行的end loop那里报错
declare v_emp t_user_p.employee_id%type ; cursor c_user is select t_user_p.employee_id from t_user_p ;
begin
open c_user;
loop
end loop ;
close c_user;
end ;
这样执行还是倒数第三行的end loop报错,
去掉最后一行end后的分号还是end loop报错,
环境是pl/sql
declare v_emp t_user_p.employee_id%type ; cursor c_user is select t_user_p.employee_id from t_user_p ;
begin
open c_user;
loop
fetch c_user into v_emp ;
exit when c_user%NOTFOUND ;
if :v_emp = '09091214' then
goto X;
end if ;
-- DBMS_OUTPUT.PUT_LINE(:v_emp);
<<X>>
end loop ;
close c_user;
end
执行总是倒数第三行的end loop那里报错
declare v_emp t_user_p.employee_id%type ; cursor c_user is select t_user_p.employee_id from t_user_p ;
begin
open c_user;
loop
end loop ;
close c_user;
end ;
这样执行还是倒数第三行的end loop报错,
去掉最后一行end后的分号还是end loop报错,
环境是pl/sql
v_emp NUMBER; CURSOR c_user IS
SELECT vendor_id FROM tsp_ems_t;
BEGIN
OPEN c_user;
LOOP
FETCH c_user
INTO v_emp;
EXIT WHEN c_user%NOTFOUND;
IF v_emp = 9091214
THEN
GOTO x;
END IF;
-- DBMS_OUTPUT.PUT_LINE(:v_emp);
END LOOP;
<<x>>
CLOSE c_user;
END;再pl/sql developer 中是没问题
Declare
v_Emp Varchar2(8) := ''; Cursor c_User Is
Select t_User_p.Employee_Id From t_User_p;
Begin
Open c_User;
Loop
Fetch c_User
Into v_Emp;
Exit When c_User%Notfound;
If v_Emp = '09091214' Then
Goto x;
End If;
<<x>>
Null;
End Loop;
Close c_User;
End;
在 <<x>>下面加上null;
v_emp NUMBER; CURSOR c_user IS
SELECT vendor_id FROM tsp_ems_t;
BEGIN
OPEN c_user;
LOOP
FETCH c_user
INTO v_emp;
EXIT WHEN c_user%NOTFOUND;
IF v_emp = '9091214'
THEN
GOTO x;
END IF;
<<x>> DBMS_OUTPUT.PUT_LINE(v_emp);
END LOOP;
CLOSE c_user;
END;
跳转到X时 好像得做点事
null;也是一个可执行的语句!!