0
これは動的選択クエリSPです。値がNULLでない場合は、where句には含まれていません。ストアドプロシージャの動的更新
create or replace PROCEDURE GET_STORE(
_storeId IN NUMBER DEFAULT NULL,
_storename IN VARCHAR2 DEFAULT NULL,
_return_Result OUT SYS_REFCURSOR
)AS
BEGIN
OPEN _return_Result FOR
SELECT S.* FROM STORE S
WHERE (NVL(_storeId,0) =0 OR S.STOREID=_storeId)
AND (_storename IS NULL OR S.STORENAME=_storename);
END RD_CITY;
私たちが更新のために同じことをする方法は、nullでない列を更新することを意味します。
この手順は非常に賢いですが、それは小さなdsadvantageを持っている - それは防ぐ任意のインデックスを使用してからオプティマイザだ、といつもの更新ごとにフル・テーブル・スキャンを実行します。 – krokodilko