oracle8.1.6 select lm1.message_key, lm1.package_key, lm1.message as default_message, lm2.message as translated_message from lang_messages lm1, lang_messages lm2 where lm1.locale = :default_locale and lm2.locale (+) = :locale and lm2.message_key (+) = lm1.message_key and lm2.package_key (+) = lm1.package_key and exists (select 1 from lang_messages lm3 where lm3.locale = :search_locale and lm3.message_key = lm1.message_key and lm3.package_key = lm1.package_key and upper(dbms_lob.substr(lm3.message)) like upper(:search_string)) order by upper(lm1.message_key)