How can I prevent an opportunity I'm editing from being selected as a child Opportunity?
You can insert a Before Update trigger script on the Opportunity object. Here's an example:
if (ParentOpportunity_Id_c == OptyId){
throw new oracle.jbo.ValidationException('You can't set a Parent Opportunity as the same Opportunity
you are editing.')
}