用游标提取记录:
FETCH coursor_name INTO variable1,variable1...variable可以是哪些类型?

解决方案 »

  1.   

    根据你游标取出来的类型啊,像varchar2,number之类的
      

  2.   

    自然是和字段一个类型了
    其实你不要管什么类型,定义变量是就定义成: 表.字段%type就行了
      

  3.   

    可以用%rowtype吗?
    还有其他的类型???
      

  4.   

    可以!
    例:
    SET SERVERIUTPUT ON 
    DECLARE 
    R_emp EMP%ROWTYPE; //是定义在表上的.
    CURSOR c_emp IS SELECT * FROM emp; 
    BEGIN 
    OPEN c_emp; 
    LOOP FETCH c_emp INTO r_emp; 
    EXIT WHEN c_emp%NOTFOUND; 
    DBMS_OUT.PUT.PUT_LINE('Salary of Employee'||r_emp.ename||'is'|| r_emp.salary); 
    END LOOP; 
    CLOSE c_emp; 
    END;
      

  5.   

    gslcn
    你好!
    能举个例子吗?
      

  6.   

    BEGIN
      FOR emp_record IN 
        (SELECT ename,sal FROM emp)
      LOOP
        dbms_output.PUT_LINE(emp_record.ename);
      END LOOP;
    END;
    ----------------------------
    DECLARE
      CURSOR emp_cursor IS
      SELECT empno,ename FROM emp;
    BEGIN
      FOR emp_record IN emp_cursor LOOP
        dbms_output.put_line(emp_record.empno||emp_record.ename);
      END LOOP;
    END;
    ----------------------------------
    建议你使用以上两种形式的游标,变量类型的定义,打开、关闭游标都是
    隐藏完成的,就不用考虑那么多了。
      

  7.   

    是啊 比如
    EMP 表里有 ID   NAME 字段,分别是 NUMBER,VARCHAR2 类型
    那么你定义变量的时候可以是 VAL1 EMP.ID%TYPE, VAL2 EMP.NAME%TYPE;
    CURSOR C_EMP IS
    SELECT ID,NAME FROM EMP ;
    ...
    OPEN C_EMP;
    FETCH C_EMP INTO VAL1,VAL2;
    CLOSE C_EMP;