Who is Participating?

1) " Though the count(*) is greater than 1 it is getting into IF condition and stting o_original_case_num := -3. " ---> This simply means the select statement is getting a count less than or equal to 1.

2) what is the count of records if you run the query manually in the toad/sqlplus by replacing the variables with actual values ?

3) Also this statement "t_count := 10;" is not required in your procedure code as the t_count declaration will set the value to null and count(*) is not going to return null right. so you can comment/remove this line "t_count := 10;"