誰でもこの問題を解決できますか?PL SQLのヌル値を持つ変数を使用する動的カーソル
CURSOR c_cursorName (
paramA IN VARCHAR2,
paramB IN VARCHAR2)
IS
SELECT tableA.id, tableA.name
FROM tableA
WHERE tableA.fieldA = paramA
AND (paramB IS NULL OR tableA.fieldB = paramB);
は、なぜ私はこれをやっている: 私はこのように定義されたカーソルを持っていますか?私は2つの異なるケースで、このカーソルを再利用したいので:私はFIELDAがparamA値に等しく、FIELDBがparamBに等しいにtableA 内のすべての行を返すためにparamB値を渡すとき
- 。
- 私はparamB(
null
値)に値を渡さず、fieldAがparamAと単純に等しい(そしてfieldBについては気にしません)tableAのすべての行を返したいと思います。
問題:paramBにnull
を渡すと、私の説明計画が大幅に増加し、パフォーマンス上の問題が発生します。
これを行う簡単な方法は、それぞれのケースごとに1つずつ、2つの異なるカーソルを作成することです。しかし、私は新しいインデックスや新しいカーソルを作成する必要なく、巧妙なソリューションを見つけようとしています。
提案がありますか?
両方のソリューションが素晴らしいです!しかし、ここではREALテーブルのインデックスを使用して再生する必要があるため、パフォーマンスに関する問題が1つあります(tableAは存在しません)。ありがとう! – milheiros