हम कर रहे हैं का उपयोग कर एक सॉफ्टवेयर है कि सीमित Oracle क्षमताओं. मैं की जरूरत करने के लिए फिल्टर के माध्यम से एक CLOB क्षेत्र सुनिश्चित करने के द्वारा, यह एक विशिष्ट मूल्य है. आम तौर पर, के बाहर, इस सॉफ्टवेयर को मुझे क्या करना होगा की तरह कुछ:
DBMS_LOB.SUBSTR(t.new_value) = 'Y'
हालांकि, यह समर्थित नहीं है, तो मैं कर रहा हूँ का उपयोग करने का प्रयास CAST
के बजाय. मैंने कोशिश की है कई अलग अलग प्रयास करता है, लेकिन अब तक इन कर रहे हैं मैं क्या पाया:
सॉफ्टवेयर में निर्मित एक क्वेरी परीक्षक/वैलिडेटर और इन लोगों को कर रहे हैं यह पता चलता है के रूप में अमान्य:
DBMS_LOB.SUBSTR(t.new_value)
CAST(t.new_value AS VARCHAR2(10))
CAST(t.new_value AS NVARCHAR2(10))
हालांकि, सत्यापनकर्ता को स्वीकार करता है, इन:
CAST(t.new_value AS VARCHAR(10))
CAST(t.new_value AS NVARCHAR(10))
CAST(t.new_value AS CHAR(10))
दुर्भाग्य से, भले ही सत्यापनकर्ता सुविधा देता है, इन लोगों के माध्यम से जाना है, चल रहा है, जब क्वेरी डेटा लाने के लिए, मैं ORA-22835: Buffer too small
का उपयोग करते समय VARCHAR
या NVARCHAR
. और मैं ORA-25137: Data value out of range
का उपयोग करते समय CHAR
.
वहाँ रहे हैं अन्य तरीकों से मैं कर सकता की कोशिश की जाँच करने के लिए है कि मेरे CLOB क्षेत्र में एक विशिष्ट मूल्य है, जब डेटा को छानने? यदि नहीं, तो मैं कैसे ठीक मेरे वर्तमान मुद्दों?
DBMS_LOB.SUBSTR()
तो मैं का उपयोग नहीं कर सकते कि. मैंने सोचा था किCAST
में सक्षम है करने के लिए स्ट्रिंग में कटौती, क्योंकि हम भी का उपयोग करने के लिए एक समाधान के लिएTRUNC
:CAST(CAST(date_field AS VARCHAR(9)) AS DATE)
और यह काम करता है. इसे से छुटकारा हो जाता है के समय भाग. मैं उम्मीद कर रहा था, हम कुछ कर सकता है इसी तरह इस एक के लिए.