This would probably best be handled by a separate select statement like:

begin
select 1 into v_dummy from tab where c1 = var1 and c2 = var2 and c3 = var3
and c4 = var4;
exception
 WHEN TOO_MANY_ROWS THEN
                                       ---handle here
  WHEN NO_ROWS_FOUND THEN
                                               NULL;
end;




On Wed, Jun 2, 2010 at 11:18 AM, reach manju <[email protected]> wrote:

> Hi Mike, All,
>
> Hope you all are doing well.
>
> I need your help with the same issue that was resolved.
>
> *Say if the table has data like below(2 rows with same data).
> Below query give "No data found", but I need to trap the TOO_MANY_ROW
> Exception. How can I get this done?*
>
>
> Insert into TAB
>    (C1,
>     C2, C3, C4)
>  Values
>    *(1, 2, 3, 4);*
> Insert into TAB
>    (C1,
>     C2, C3, C4)
>  Values
> *   (1, 2, 3, 4);*
>
> COMMIT;
>
> set linesize 132
> define var1 = 1
> define var2 = 2
> define var3 = 3
> define var4 = 4
> SELECT c1,
>        case when (c1c = 1) then null else c2 end c2,
>        case when (c1c = 1 or c2c = 1) then null else c3 end c3,
>        case when (c1c = 1 or c2c = 1 or c3c = 1) then null else c4 end c4
>   FROM (SELECT c1,
>                c2,
>                c3,
>                c4,
>                COUNT (*) OVER (PARTITION BY c1) c1c,
>                COUNT (*) OVER (PARTITION BY c1, c2) c2c,
>                COUNT (*) OVER (PARTITION BY c1, c2, c3) c3c,
>                COUNT (*) OVER (PARTITION BY c1, c2, c3, c4) c4c
>           FROM tab t1)
>  WHERE (c1 = &var1 AND c1c = 1)
>     OR (c1 = &var1 and c2 = &var2 AND c2c = 1 and c1c != 1)
>     OR (c1 = &var1 and c2 = &var2 AND c3 = &var3 AND c3c = 1 and c2c != 1)
>     OR (c1 = &var1 and c2 = &var2 AND c3 = &var3 AND c4 = &var4 AND c4c = 1
> and c3c != 1);
>
>
> On Tue, May 25, 2010 at 2:51 PM, Michael Moore <[email protected]>wrote:
>
>> Glad it worked. Make sure you test it well.
>> Mike
>>
>>
>> On Tue, May 25, 2010 at 2:32 PM, reach manju <[email protected]> wrote:
>>
>>> Perfect Mike!.. You are great. Just modified a bit to fit in.. It
>>> works..:-)
>>> I can trap, no_data_found as well.
>>>
>>> Thanks Tons!
>>> Thanks for all the help.
>>>
>>> ~Manju
>>>
>>>
>>> On Tue, May 25, 2010 at 1:00 PM, reach manju <[email protected]>wrote:
>>>
>>>> You are right Andrej, I forgot to mention INTO in the statement,
>>>>
>>>> I am working on the suggestion given by Mike. Shall post the results
>>>> soon. m sure it should work for the scenario I have..:-)
>>>>
>>>>
>>>> On Tue, May 25, 2010 at 12:31 PM, Andrej Hopko <[email protected]>wrote:
>>>>
>>>>>  it's okay - I hadn't even read the error details and just shout what I
>>>>> saw
>>>>>
>>>>> now I found, that NO_ROWS_FOUND may be used
>>>>>     I use only NO_DATA_FOUND for handling this kinf og exception
>>>>>     (and have no idea of difference between them =) )
>>>>>
>>>>> regards,
>>>>>
>>>>>   Andrej Hopko
>>>>>
>>>>>
>>>>> On 25. 5. 2010 21:26, Michael Moore wrote:
>>>>>
>>>>> Yes, my example was for straight SQL. I assumed that Manju would know
>>>>> how to put it into a PL/SQL context.
>>>>> Regards,
>>>>> Mike
>>>>>
>>>>> On Tue, May 25, 2010 at 12:21 PM, Andrej Hopko <[email protected]>wrote:
>>>>>
>>>>>>  in PL/SQL context this select syntax does not work
>>>>>>
>>>>>>
>>>>>> On 25. 5. 2010 18:56, reach manju wrote:
>>>>>>
>>>>>> select...from tab1
>>>>>>         where col1=c1.col1 and col2=c1.col2
>>>>>>
>>>>>>
>>>>>>  select...from tab1
>>>>>> *INTO variable*
>>>>>>
>>>>>> where col1=c1.col1 and col2=c1.col2
>>>>>>
>>>>>>  you forgot INTO statement which is mandatory!
>>>>>>
>>>>>>     Andrej Hopko
>>>>>>  --
>>>>>>  You received this message because you are subscribed to the Google
>>>>>> Groups "Oracle PL/SQL" group.
>>>>>> To post to this group, send email to [email protected]
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected]
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>>>>>
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Oracle PL/SQL" group.
>>>>> To post to this group, send email to [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Oracle PL/SQL" group.
>>>>> To post to this group, send email to [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>>>>
>>>>
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Oracle PL/SQL" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Oracle PL/SQL" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Oracle PL/SQL" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/Oracle-PLSQL?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

Reply via email to