समस्या यह है कि Oracle (डिफ़ॉल्ट रूप से) खाली स्ट्रिंग्स को NULL
. के रूप में मानता है . इसलिए:
where name = ''
के समान है:
where name = NULL
और दोनों हमेशा विफल होते हैं (क्योंकि वे NULL
return लौटाते हैं )।
आप इसे विभिन्न तरीकों से ठीक कर सकते हैं। एक तरीका है:
where (name = INPUT or name is null and INPUT is null)
या, यदि आप जानते हैं कि कोई अमान्य नाम है:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')