簡體   English   中英

在PL / SQL中使用for循環

[英]using a for loop in PL/SQL

  1. 編寫一個完成以下任務的PL / SQL程序:(a)聲明一個名為c_students的游標,該游標從“學生”表中選擇以下字段:StudentId,Lname,Fname和Major,其中major是'Accounting'(b)檢索記錄上面列出的列為v_sid,v_lname,v_fname,v_major(c)顯示檢索到的記錄。

使用for ..循環從“學生”表中檢索所有學生的姓為“ Black”的行。 顯示這些行。

解決方案:我已經成功地完成了a,b和c部分,如下所示:

DROP TABLE IF EXISTS students;
CREATE TABLE students(
    StudentId NUMBER(3),
    LName VARCHAR2(30),
    FNAme VARCHAR2(30),
    Major VARCHAR2(30));
INSERT INTO students VALUES(130,'Black','Judy','Accounting');
INSERT INTO students VALUES(132,'Maw','Richard','Marketing');
INSERT INTO students VALUES(134,'Bessner','Bryan','Finance');
INSERT INTO students VALUES(136,'Shaw','Tim','Accounting');
INSERT INTO students VALUES(138,'Black','Conrad','Sales');

COMMIT;

DECLARE
    cursor c_students IS
    --for rec in (select * from students where 
        select * from students where major like 'Accounting';
    v_sid Number(3);
    v_lname VARCHAR2(30);
    v_fname VARCHAR2(30);
    v_major VARCHAR2(30);
BEGIN   
    open c_students;
    Loop
        Fetch c_students into v_sid, v_lname, v_fname, v_major;
        IF c_students%NOTFOUND Then
            Exit;
        End If;
        dbms_output.put_line(v_sid||' '||v_lname||' '||v_fname||' '||v_major);
    End Loop;
    close c_students;
End;
/

================================================== ===============================

現在,在c之后的最后一部分指出,我需要使用for循環來完成與上面相同的操作,而我一輩子都無法弄清楚如何在for循環中做到這一點。 我知道for循環不會被聲明,而是從Begin部分開始,但是我不知道從那里開始。 任何幫助將不勝感激。 謝謝!

將開環等替換為以下內容。 然后,您可以通過rec變量引用光標的列。

For rec in c_students
Loop
...
End loop;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM