2011-08-24 7 views
6

इस क्वेरी से: चयन * मेज सेibm db2 नेट ड्राइवर एसक्यूएल त्रुटि। टेबल नाम नहीं ढूंढ रहा है?

मैं निम्न त्रुटि संदेश मिलता है:

त्रुटि: डीबी 2 एसक्यूएल त्रुटि: SQLCODE = -204, SQLSTATE = 42,704, SQLERRMC = webuser.table, ड्राइवर = 4.8 .87 SQLState: 42,704 त्रुटि: -204 त्रुटि: डीबी 2 एसक्यूएल त्रुटि: SQLCODE = -727, SQLSTATE = 56098, SQLERRMC = 2; -204, 42,704; webuser.table, ड्राइवर = 4.8.87 SQLState: 56098 त्रुटि कोड: -727

समस्या की जांच कैसे करें इसके लिए कोई सुझाव बहुत अधिक है की सराहना की।

उत्तर

5

पहली नज़र में, ऐसा लगता है कि डीबी 2 उस तालिका का नाम webuser स्कीमा के तहत नहीं ढूंढ रहा है, या वर्तमान कनेक्टेड उपयोगकर्ता की स्कीमा तालिका के लिए स्कीमा से मेल नहीं खाती है। प्रयास करें:

select * from webuser.table 

अगर यह काम नहीं है, तो यह शायद webuser स्कीमा के तहत अस्तित्व में नहीं है, इसलिए पता लगाने के लिए क्या स्कीमा इसके तहत मौजूद है की कोशिश करो।

आप अक्सर IBM DB2 infocenter में या तो की तरह DB2 UDB कमांड लाइन पर sql error codes के लिए जानकारी पा सकते हैं:

db2 ? SQL0100 

आप किसी भी त्रुटि इस तरह से देख सकते हैं:

db2 ? SQLnnnnn 

जहां nnnnn है त्रुटि कोड

आप अक्सर - सहित Google पर खोज करके डीबी 2 से एसक्यूएल त्रुटि कोड पर जानकारी प्राप्त कर सकते हैं क्योंकि Google खोज परिणामों से पहले डैश के साथ शब्द को हटा देता है। तो, sql code 204 और sql code -204 पर खोजें।

आप आम तौर पर प्रणाली की किस प्रकार (z/OS या UDB) आप पर चल रहे हैं, और यह भी डीबी 2 व्यवस्थापकों को वे सूची के लिए उपयोग को प्रतिबंधित कर दिया है, तो पर निर्भर करता है पर निर्भर करता है sysibm.tables या syscat.tables के तहत सभी तालिकाओं की एक सूची प्राप्त कर सकते हैं टेबल।

आप एक UDB उदाहरण के खिलाफ चला रहे हैं, की कोशिश:

select tabschema, tabname from syscat.tables 

मुझे लगता है कि आप तालिका की उम्मीद नहीं कर रहे हैं table नामित किया जाना निश्चित रूप से यह सोचते हैं रहा हूँ। मुझे लगता है कि डीबी 2 या एसक्यूएल-9 2 मानक के तहत एक प्रतिबंधित शब्द है।

यदि आप उस क्वेरी को चलाने वाली संग्रहीत प्रक्रिया चला रहे हैं, तो हो सकता है कि आप क्वेरी से सही त्रुटि नहीं देख रहे हों। संग्रहित प्रक्रियाओं के दौरान एक क्वेरी की तुलना में संग्रहीत प्रक्रियाएं अक्सर एक अलग त्रुटि कोड लौटाती हैं, जब तक कि वे क्वेरी से स्केलकोड और एसक्लस्टेट को पकड़ने और वापस करने के लिए प्रोग्राम किए जाते हैं।

इसके अतिरिक्त, मुझे लगता है कि आपको 2 के संदेश कोड के साथ -727 का एक SQL कोड प्राप्त हो रहा है।उस के लिए प्रलेखन कहते हैं:

An error occurred during implicit system action type action-type . Information returned for the error includes SQLCODE sqlcode , SQLSTATE sqlstate and message tokens token-list . 

जहां कार्रवाई प्रकार 2: अंतर्निहित एक कैश्ड गतिशील एसक्यूएल बयान

यह त्रुटि जानकारी कम सीधा और एक डाटाबेस प्रशासक के लिए और अधिक देखते है की तैयार करते हैं। यह उपयोगी हो सकता है लेकिन मैं पहले अन्य सुझावों का प्रयास करूंगा। इसका अर्थ यह हो सकता है कि कुछ संकुल डेटाबेस (जैसे आपके नेट ड्राइवर के लिए) से बंधे नहीं हैं या डेटाबेस में कुछ अनुमतियां सही नहीं हैं या फ़िक्सपैक सही तरीके से लागू नहीं किया गया था और डेटाबेस प्रक्रियाएं गायब हैं। हालांकि, यह -204 के कारण भी हो सकता है और केवल बाद की त्रुटि हो सकती है।

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