2011-10-05 11 views
5

के बाद बाध्य है Iracle SQL में एक बाधा खोजना है जिसमें एक निश्चित खोज_कॉन्शन है। इस तरह कुछ:क्वेरी ओरेकल की खोज search_condition के मूल्य

SELECT constraint_name, constraint_type,search_condition 
FROM USER_CONSTRAINTS 
WHERE table_name ='MYTABLE' AND search_condition = '"myColumn" IS NOT NULL'; 

समस्या मुझे त्रुटि है "डेटाटाइप लंबे समय का उपयोग Ilegal"।

मैं एक कामकाजी विकल्प की सराहना करता हूं। धन्यवाद!

उत्तर

0

आपको पीएल/एसक्यूएल का स्पष्ट रूप से उपयोग करने की आवश्यकता है। यहाँ उदाहरण के लिए देखें:

http://www.orafaq.com/forum/m/110779/43055/?srch=instr+long#msg_110779

अनिवार्य रूप से आप जहां खंड में चाहता है का उपयोग नहीं कर सकते हैं। के रूप में और इस प्रकार

SUBSTR(search_condition, 1, 21) = 'whatever you're after' 

search_condition है एक लंबी डेटाप्रकार कि बल्कि सीमा क्या आप इसके साथ क्या कर सकते हैं

+3

यूआरएल अब मान्य नहीं है। – esteuart

1

अपने कहां खंड की दूसरी छमाही में संशोधन। SUBSTR का अंतिम पैरामीटर स्ट्रिंग की लंबाई देता है ताकि आवश्यकतानुसार संशोधित हो सके।

संशोधित रूप में मैं कहां खंड, मूल रूप से एक PL/SQL समारोह बनाने के ऊपर करने के लिए और का उपयोग करें कि अपने कहां खंड में पर प्रतिबंध भूल था,

उदाहरण के लिए

FUNCTION get_long_16(pFormID NUMBER, pSectionItemID NUMBER, pSequence NUMBER) 
    RETURN VARCHAR2 
    AS 
      l_data LONG; 
    BEGIN 
     SELECT far.text_answer 
     INTO l_data 
     FROM form_answers_repeating far 
     WHERE far.form_id = pFormID 
     AND far.section_item_id = pSectionItemID 
     AND far.sequence = pSequence; 

     RETURN SUBSTR(l_data, 1, 16); 
    END; 

के रूप में प्रयोग किया जाता है यहाँ ....

+0

मुझे अभी भी नहीं पता कि मेरी क्वेरी कैसा दिखना चाहिए। जहां table_name = 'table' और get_long_16 (search_condition, 1, 3) = 'aaa'; ?? – Blitzkr1eg

+0

यह ठीक है, अपने कहां पर फ़ंक्शन कॉल जोड़ें :) – OTTA

1

उपयोग

describe USER_CONSTRAINTS ; 

देखने के लिए कि search_condition की है लंबा टाइप करें।

ओरेकल 12: search_condition_vc समाधान होगा।

संबंधित मुद्दे