解决方案 »

  1.   

    ORA-06550: 第 3 行, 第 4 列: 
    PLS-00905: 对象 SCOTT.GETEMP 无效
    ORA-06550: 第 3 行, 第 4 列: 
    PL/SQL: Statement ignored
      

  2.   

    这是在哪个用户下创建的?声明是未指定用户,而游标中却包含用户。v_ename emp.ename%type;
    v_sal emp.sal%type; cursor emp_cur is select ename,sal from SCOTT.emp where deptno=
    (select deptno from SCOTT.dept where dname=deptname);
      

  3.   


    把游标中的SCOTT去掉。  去掉一样的还是报错
      

  4.   


    把游标中的SCOTT去掉。  去掉一样的还是报错那就是语法的问题,为什么要这样写呢?create or replace procedure getEmp(deptname varchar2:='SALES'),调用时传参不行?
      

  5.   


    把游标中的SCOTT去掉。  去掉一样的还是报错那就是语法的问题,为什么要这样写呢?create or replace procedure getEmp(deptname varchar2:='SALES'),调用时传参不行?如果没传参不就调用正默认的嘛
      

  6.   


    把游标中的SCOTT去掉。  去掉一样的还是报错那就是语法的问题,为什么要这样写呢?create or replace procedure getEmp(deptname varchar2:='SALES'),调用时传参不行?如果没传参不就调用正默认的嘛说实话,我没见过这种写法。
      

  7.   

    open emp_cur 少了个分号
      

  8.   

    CREATE OR REPLACE PROCEDURE GETEMP(DEPTNAME VARCHAR2 := 'SALES') IS
      V_ENAME EMP.ENAME%TYPE;
      V_SAL   EMP.SAL%TYPE;  CURSOR EMP_CUR IS
        SELECT ENAME, SAL
          FROM SCOTT.EMP
         WHERE DEPTNO = (SELECT DEPTNO FROM SCOTT.DEPT WHERE DNAME = DEPTNAME);
    BEGIN
      OPEN EMP_CUR;
      LOOP
        FETCH EMP_CUR
          INTO V_ENAME, V_SAL;
        EXIT WHEN EMP_CUR%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(V_ENAME || ' ' || V_SAL);
      END LOOP;
      CLOSE EMP_CUR;
    END;
      

  9.   

    貌似出现这个都一般是语法问题
    ORA-06550: 第 3 行, 第 4 列: 
    PL/SQL: Statement ignored