>Marc,
>
>I'd start pulling it apart and see what is really causing it to fail. ie remove the expression entirely see if it's your join/where. Exclude the records where v_weight = 0... just throwing out standard degugging ideas here. If the join/where is the fault it might be corrupted index as has been elsewhere suggested.
Another thing, let's see if it's the division by itself - putting a + instead of / would clean it out from the list of suspects. Also, a thing to try would be leaving the division but omitting the join.