小弟刚开始学习游标,请帮我看一下到底是什么问题:
我测试scott用户下的EMP表
代码如下:
declare
v_depno emp.deptno%type;
cussor c_emp is select * from emp where deptno=v_depno;
v_emp c_emp%rowtype;
begin
v_deptno :=&x;
open c_tmp;
loop
fetch c_emp into v_emp;
exit when c_emp%notfound;
dbms_output.put_line(v_emp.empno ||' '|| v_emp.ename||' '||' 'v_emp.sal||' '||v_depno);
end loop;
close c_emp;
end;=====================================================执行输入部门编号20
报错ORA-06550
ORA-00103
请指点一下,谢谢各位了!
我测试scott用户下的EMP表
代码如下:
declare
v_depno emp.deptno%type;
cussor c_emp is select * from emp where deptno=v_depno;
v_emp c_emp%rowtype;
begin
v_deptno :=&x;
open c_tmp;
loop
fetch c_emp into v_emp;
exit when c_emp%notfound;
dbms_output.put_line(v_emp.empno ||' '|| v_emp.ename||' '||' 'v_emp.sal||' '||v_depno);
end loop;
close c_emp;
end;=====================================================执行输入部门编号20
报错ORA-06550
ORA-00103
请指点一下,谢谢各位了!
中v_emp貌似沒有定義!
我plsql和toad都试过了,都不行!
这个应该是cursordbms_output.put_line(v_emp.empno ||' '|| v_emp.ename||' '||' 'v_emp.sal||' '||v_depno);
这个应该是
dbms_output.put_line(v_emp.empno ||' '|| v_emp.ename||' '||v_emp.sal||' '||v_depno);
DECLARE
V_DEPNO EMP.DEPTNO%TYPE;
CURSOR C_EMP IS --关键字是CURSOR 不是 CUSSOR
SELECT * FROM EMP WHERE DEPTNO = V_DEPNO;
V_EMP C_EMP%ROWTYPE;
BEGIN
V_DEPNO := &X; --和上面一致V_DEPNO 不是DEPTNO
OPEN C_EMP; --定义是C_EMP 不是C_TMP
LOOP
FETCH C_EMP
INTO V_EMP;
EXIT WHEN C_EMP%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_EMP.EMPNO || ' ' || V_EMP.ENAME || ' ' ||
V_EMP.SAL || ' ' || V_DEPNO); --V_EMP.SAL 前面的''是干嘛的?
END LOOP;
CLOSE C_EMP;
END;
--打错一堆单词……
declare
v_deptno emp.deptno%type; --这里v_deptno
cursor c_emp is select * from emp where deptno=v_deptno; --是cursor……
v_emp c_emp%rowtype;
begin
v_deptno :=&x;
open c_emp; --是c_emp 不是c_tmp
loop
fetch c_emp into v_emp;
exit when c_emp%notfound;
dbms_output.put_line(v_emp.empno||' '||v_emp.ename||' '||' '||v_emp.sal||' '||v_deptno);
end loop;
close c_emp;
end;
/