複数のカーソルを1つのプロシージャに戻したい。PLSQL:複数のカーソルを出力するプロシージャ
私は、現在のコードは次のとおりです。
TYPE REFCURSOR IS REF CURSOR;
PROCEDURE GETCARS(oCARS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
END GETCARS;
私はそれがかのうだかはわからないが、私のようなものを作りたい:
2番目のパラメータとしてに接続されたすべての修理を返しますPROCEDURE GETCARS(oCARS OUT REFCURSOR, oREPAIRS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
..??..
END GETCARS;
現在フェッチされたoCARS行。 (表の修理が車からid_carためのFKを持っている)
今、私はoCARSカーソルから1行をフェッチする際に、C#の側に私は私の修理のリストを与える二プロシージャを呼び出すが、多分それは何とかすることができますことをやります1つの手順でそれを行う(私のパフォーマンスの向上を与えるだろう - ?私はそれが各修理のための乗算車を返す原因、結合を使用したくない)
なぜ2つの手順(getcarsとgetrepairs)がないのですか?また、必要なときに必要なものを選択するだけです。exec getcars()の代わりに* from carsを選択してください。 – tbone
コールプレーンの選択が安全でなく、パラメータ化されたプロシージャ(SQLインジェクション保護)を呼び出しています。 私は、2プロシージャを呼び出すほうが効率が悪いと考えています。ここでは、他の人の経験を期待しています。 –
正しくパラメータ化されたselectステートメントを呼び出すことは、プロシージャを呼び出すよりも安全です。 selectステートメントにパラメーター値を連結しない限り、SQLインジェクションのベクトルはありません。 – Allan