2015-05-15 19 views
1

我在玩耍,並試圖做出類似這樣的工作,並且找不到解決方法。我在一個帶有表別名的sql語句中進行連接「。SQL在PLSQL光標中加入表別名

我該如何在PLSQL for循環中訪問這些項目?

SELECT  
    it.item_title title, 
    r.item_id id 
FROM 
    item it, rental_item r 
WHERE 
    it.item_id = r.item_id; 

我想知道是否有訪問他們在這樣的假定之上的查詢是cursor or for i in (query)循環的方式...

FOR i IN c LOOP 
    dbms_output.print_line(i.title||' '||i.id); 
END LOOP; 

現在我使用的是靜態光標並用數據填充記錄表,然後對其進行處理。但是,如果這個問題可以用這種方式解決,那將更加優雅。

在此先感謝。

回答

1

下面是我該怎麼做,我沒有看到任何理由爲什麼這不起作用。

DECLARE 
CURSOR c1 
IS 
SELECT  
    it.item_title title, r.item_id id 
FROM 
    item it inner join, rental_item r 
    on it.item_id = r.item_id; 
BEGIN 
FOR rec IN c1 LOOP 
    dbms_output.print_line(rec.title||' '||rec.id); 
END LOOP; 
END; 
+0

有趣的是,我早些時候使用'FOR IN IN..'嘗試了這個確切的東西,它沒有工作。但是,此代碼完美工作。謝謝。 – VERNSTOKED

+0

同樣爲了將來的參考,你不能像在SQL中那樣使用'AS「標題」'。你只能使用'it.item_title title'。 – VERNSTOKED

+0

總是給出適當的最佳知識的最佳答案,你可以建議,因爲我編輯你的答案連接cluase。以逗號加入,以及cluase非常古老以及性能影響查詢。 – Ajay2707