Hier heißt es eben, mal genau zu analysieren, welche Table-Function mit welchen Parametern genau aufgerufen wird.
An statt dann alles in einen großen Join zu packen, muss man dann wohl aus Performancegründen die SQL's in Einzelschritte zerlegen:
1. create table as (select job-info where status = wait), geht auch als Insert into select ...
2. Mit diesem Ergebnis holt man sich nun die Object_Lock_Info nur für diese Jobs und kann ggf. direkt mit Object_Lock_Info über den Objektnamen gejoint, die Jobs mit Satzstatus "Hold"

Viuelleicht gibts noch eine Sicht "Jobsatzsperren", um nur die Objekte zu ermitteln, wo der Job auf Status "Wait" sitzt. Dann kann man zu diesem Objekt den Job ermitteln, der den Satz sperrt.