2013-07-22 21 views
0
  1. 寫完成某項PL/SQL程序執行以下操作: (a)宣佈一個稱爲c_students光標,其選擇下列字段: StudentId,L-NAME,FName和主要從學生表 主要是'會計' (b)檢索上面列出的記錄到v_sid,v_lname,v_fname,v_major (c)顯示檢索到的記錄。

使用for ..循環從Student表中檢索學生姓氏爲'Black'的所有行。顯示這些行。在PL/SQL使用for循環

SOLUTION: 我已成功完成部分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部分開始,但我不知道該從哪裏開始。任何幫助將不勝感激。謝謝!

+0

http://www2.cis.gsu.edu/dmcdonald/cis8040/Oracle%20Basics%20of%20PL_SQL.pdf頁32 – Annjawn

+0

OR http://www.tutorialspoint.com/plsql/plsql_loops.htm – Annjawn

+0

或者,如果其他方法都失敗了,請[嘗試閱讀手冊](http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#CHDGIBHC)。 –

回答

1

用以下替換開環等。然後,您可以通過rec變量引用光標的列。

For rec in c_students 
Loop 
... 
End loop;