Você deve começar a usar a sintaxe JOIN padrão. Além de ser mais legível (pelo menos na minha opinião), também protege você de junções cartesianas acidentais se você esquecer a condição de junção real na cláusula WHERE. Além disso, é portátil em quase todos os DBMS, em oposição ao desajeitado
(+)
sintaxe usada pelo Oracle (que também possui algumas limitações que a sintaxe JOIN não possui) Aqui está a consulta reescrita usando junções explícitas (em vez de implícitas):
SELECT DISTINCT ope.ope_operationid,
ser.ser_code,
opt.opt_code,
ost.ost_code
FROM od_operation ope,
LEFT JOIN od_service_type ser ON ope.ser_id = ser.ser_id
LEFT JOIN od_operation_type opt ON opt.opt_id = ope.opt_id
LEFT JOIN od_status_type ost ON ost.ost_id = ope.ost_id
LEFT JOIN od_equipment_type eqt ON ????????
WHERE ope.opt_id = 3781
AND ope.ope_operationid = 'LAA351BP'
Editar
A condição de junção ausente em
od_equipment_type
é exatamente a razão pela qual a sintaxe JOIN é preferida. Se a vírgula final no SQL original for removida, a instrução criará uma junção cartesiana indesejada que pode ter um impacto severo no servidor se as tabelas envolvidas forem grandes. Com a sintaxe JOIN, você sempre obterá um erro de sintaxe que evita esses erros de digitação. O uso de junções implícitas só causará um erro quando você deixar uma vírgula na lista FROM, mas nunca se você perder uma condição de junção no
WHERE