create or replace procedure temp_1(pi_type varchar2) is
  emp_record employees%rowtype;
  CURSOR emp_cursor IS
    SELECT *
      FROM employees
     where to_date('2008/10/1', 'yyyy/MM/dd') - hiredate > 6 * 30
       and pay_type = pi_type
       for update;
begin
  for emp_record in emp_cursor loop
    dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
    --通过游标更改数据
    --update employees set sal = emp_record.salary*1.1 WHERE CURRENT OF emp_cursor;
    dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
  end loop;
end temp_1;

解决方案 »

  1.   


    create or replace procedure temp_1(pi_type varchar2) is
      emp_record employees%rowtype;
      CURSOR emp_cursor IS
        SELECT *
          FROM employees
         where to_date('2008/10/1', 'yyyy/MM/dd') - hiredate > 6 * 30
           and pay_type = pi_type
           for update;
    begin
      for emp_record in emp_cursor loop
        dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
        --通过游标更改数据
        --update employees set sal = emp_record.salary*1.1 WHERE CURRENT OF emp_cursor;
        dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
      end loop;
    end temp_1;这个存储过程怎么调用啊?我用execute temp_1('XXX');还是报错
      

  2.   


    create or replace procedure temp_1(pi_type varchar2) is
      emp_record employees%rowtype;
      CURSOR emp_cursor IS
        SELECT *
          FROM employees
         where to_date('2008/10/1', 'yyyy/MM/dd') - hiredate > 6 * 30
           and pay_type = pi_type
           for update;
    begin
      for emp_record in emp_cursor loop
        dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
        --通过游标更改数据
        --update employees set sal = emp_record.salary*1.1 WHERE CURRENT OF emp_cursor;
        dbms_output.put_line(emp_record.name || '   ' || emp_record.saraly);
      end loop;
    end temp_1;这个存储过程怎么调用啊?我用execute temp_1('XXX');还是报错
    报错一定要把错误信息贴出来,不是怎么找错误啊
    SET SERVEROUTPUT ON;
    EXECUTE TEMP_1('xxx');
      

  3.   

    SQL> execute temp_1('小时工');
    错误信息:
    begin temp_1('小时工'); end;
    ORA-06550: 第 1 行, 第 7 列: 
    PLS-00905: 对象 YWF.TEMP_1 无效
    ORA-06550: 第 1 行, 第 7 列: