我想在一個過程中返回多個遊標,一個基於另一個過程。PLSQL:輸出多個遊標的過程
我目前的代碼是:
TYPE REFCURSOR IS REF CURSOR;
PROCEDURE GETCARS(oCARS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
END GETCARS;
我不知道這是更多鈔票,但我要讓類似:
PROCEDURE GETCARS(oCARS OUT REFCURSOR, oREPAIRS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
..??..
END GETCARS;
這將返回作爲第二個參數與連接的所有維修當前獲取的oCARS行。 (表修理有一個FK從汽車的id_car)
現在我這樣做,在C#的一面,當我從oCARS遊標讀取一行我打電話,給了我修理的列表第二個步驟,但也許是在某種程度上可能這樣做,在一個程序(這將使我的性能提升? - 我不想使用加入,因爲它返回乘汽車的每個維修)
爲什麼不能有2個程序(getcars和getrepairs)?或者更好的是,只需在需要時選擇你需要的東西:從汽車中選擇*而不是執行getcars() – tbone 2012-01-02 17:55:34
調用平面選擇不太安全,然後調用參數化過程(sql注入保護)。 我認爲調用2個程序的效率較低..我希望有一些其他經驗的人在這裏.. – 2012-01-03 00:36:43
調用一個正確的參數化select語句不會比調用過程安全。只要不將參數值連接到select語句中,就沒有用於SQL注入的向量。 – Allan 2012-01-03 16:46:34