Anonim

தொடர்புடைய தரவுத்தள மேலாண்மை அமைப்பு (டிபிஎம்எஸ்) உலகில் ஆரக்கிள் என்ற பெயரை ஒரு அதிகார மையமாக தரவுத்தள மேவன்கள் அங்கீகரிக்கும். ஆரக்கிள் பல தசாப்தங்களாக மிக அதிக சக்தி வாய்ந்த டிபிஎம்எஸ் தீர்வுகளை உருவாக்கியுள்ளது மற்றும் இந்த துறையில் ஒரு தலைவராக உள்ளது. தரவுத்தள தயாரிப்புகளின் இறுதி பயனர்கள் பலர் முன்னரே வடிவமைக்கப்பட்ட தீர்வைப் பயன்படுத்தும்போது குழப்பமடையலாம் அல்லது குழப்பமடையக்கூடும், மேலும் இது பிழை செய்தியை உருவாக்குகிறது. ஆரக்கிள் தயாரித்த ஒரு பொதுவான பிழை செய்தி ORA-06512 பிழை.

Ora-00942 பிழையை எவ்வாறு சரிசெய்வது என்ற எங்கள் கட்டுரையையும் காண்க

ஆரக்கிள் என்பது ஒரு தரவுத்தள மேலாண்மை அமைப்பு, இது நாற்பது ஆண்டுகளாக பல்வேறு வடிவங்களில் உள்ளது. இது முதலில் ஆரக்கிளின் அசல் ஊழியர்களில் ஒருவரின் பெயரிடப்பட்ட SCOTT ஸ்கீமா எனப்படும் ஒன்றைப் பயன்படுத்தியது. 'ஸ்காட்' என்ற பயனர்பெயர் மற்றும் ஸ்காட் பூனைக்கு பெயரிடப்பட்ட 'புலி' என்ற கடவுச்சொல்லுடன் நீங்கள் முதன்முறையாக ஆரக்கிளில் உள்நுழைந்துள்ளீர்கள். இப்போது நீங்கள் ஆரக்கிளைப் பயன்படுத்துவதைப் பொறுத்து பல திட்டங்கள் பயன்படுத்தப்படுகின்றன.

ஆரக்கிள் பற்றி மேலும் அறிய நீங்கள் விரும்பினால், இந்த பக்கம் மிகவும் பயனுள்ளதாக இருக்கும்.

ORA-06512 பிழைகளை சரிசெய்கிறது

ஆரக்கிளில், ORA-06512 பிழை என்பது பொதுவான விதிவிலக்கு பிழையாகும், இது ஏதோ தவறு நடக்கிறது என்று உங்களுக்குக் கூறுகிறது. இது ஆரக்கிள் தயாரித்த மிகக் குறைந்த குறிப்பிட்ட பிழைகளில் ஒன்றாகும், ஏனெனில் இது ஒரு சிக்கல் இருப்பதாக மட்டுமே உங்களுக்குச் சொல்கிறது, ஆனால் என்ன தவறு நடக்கிறது என்று அல்ல.

எடுத்துக்காட்டாக, ஒரு பொதுவான பிழை செய்தி படிக்கக்கூடும்:

“ORA-01422: கோரப்பட்ட வரிசைகளின் எண்ணிக்கையை விட சரியான பெறுதல் திரும்பும்

ORA-06512: “DATABASE_NAME” இல், வரி 66

ORA-06512: வரி 1 at இல்

எந்த வகை பிழை நடக்கிறது என்பதை முதல் வரி உங்களுக்குக் கூறுகிறது, இந்த விஷயத்தில், வினவல் எதிர்பார்ப்பதை விட அதிகமான தரவைத் தருகிறது, எனவே அதை எவ்வாறு கையாள்வது என்று தெரியவில்லை. 'ORA-01422' குறியீடு என்பது நீங்கள் பார்க்க வேண்டிய உண்மையான பிழைக் குறியீடாகும். ORA-06512 என்பது பொதுவான பிழைக் குறியீடு மட்டுமே.

பிழை எங்கே நிகழ்கிறது என்பதை இரண்டாவது வரி உங்களுக்குக் கூறுகிறது. அந்த நேரத்தில் நீங்கள் பணிபுரியும் எந்த தரவுத்தளமாக DATABASE_NAME இருக்கும். வரி 66 என்பது பிழை நடக்கும் வரியாகும், மேலும் பிழையை சரிசெய்ய நீங்கள் சரிபார்க்க வேண்டிய வரி இது.

பிழை தொடரியல் மூன்றாவது வரி அழைப்பு எங்கிருந்து வருகிறது என்று உங்களுக்கு சொல்கிறது. வரி ஒன்றைச் சரிபார்க்கவும், நீங்கள் DATABASE_NAME க்கு அழைப்பைக் காண்பீர்கள்.

இந்த குறிப்பிட்ட பிழையை சரிசெய்ய, நீங்கள் ORA-01422 ஆல் ஏற்பட்ட சிக்கலை சரிசெய்ய வேண்டும், இது 'கோரப்பட்ட வரிசைகளின் எண்ணிக்கையை விட சரியான வருமானத்தை ஈட்டுகிறது' அல்லது ஆரக்கிள் அதைப் புறக்கணிக்கச் சொல்ல நீங்கள் விதிவிலக்கு கையாளுதலைச் சேர்க்க வேண்டும். முக்கிய சிக்கலை சரிசெய்வது எப்போதும் விரும்பத்தக்கது என்பதால், இது செல்ல வழி.

நீங்கள் செய்யக்கூடிய இரண்டு விஷயங்கள் உள்ளன. வினவல் ஒரு வரிசையை விட அதிகமாக வரும் என்று நீங்கள் எதிர்பார்க்கிறீர்கள் என்றால், நீங்கள் அதை மாற்றியமைக்கலாம், எனவே அது ஆச்சரியப்படாது. வினவல் ஒரு வரிசையைத் தரும் என்று மட்டுமே நீங்கள் எதிர்பார்க்கிறீர்கள் என்றால், அதற்கும் நீங்கள் அதை மாற்றலாம்.

ஒரு வரிசையை விட அதிகமாக எதிர்பார்க்கிறது:

இல் X க்கு (t எங்கிருந்து * தேர்ந்தெடுக்கவும்…)

லூப்

- எக்ஸ் பதிவை இங்கே செயலாக்கவும்

இறுதி வளைய;

ஒன்றுக்கு மேற்பட்ட வரிசைகள் திரும்பப் பெறப்படும் தரவுத்தள வினவல்களில் உள்ள பிழையை இது அழிக்க வேண்டும்.

ஒரு வரிசை மட்டுமே திரும்பப் பெறப்படும் என்று நீங்கள் எதிர்பார்க்கிறீர்கள் என்றால், நீங்கள் முயற்சி செய்யலாம்:

தொடங்கும்

* க்குள் தேர்ந்தெடுக்கவும்….

எங்கிருந்து….

செயல்முறை ….

விதிவிலக்கு

NO_DATA_FOUND போது

எந்த பதிவும் கிடைக்காதபோது பிழை கையாளுதல் குறியீடு

TOO_MANY_ROWS போது

பல பதிவுகள் காணப்படும்போது பிழை கையாளுதல் குறியீடு

முடிவுக்கு;

இந்த இரண்டாவது முறை 'ORA-01422: எறிந்துவிடாமல் ஒற்றை வரிசையை மட்டுமே வழங்க வேண்டும்: கோரப்பட்ட வரிசைகளின் எண்ணிக்கையை விட சரியான பெறுதல் திரும்பும், எனவே அசல் ORA-06512 பிழை.

நீங்கள் வினவலை மாற்றியமைக்கலாம், இதனால் பல வரிசை பதிலின் முதல் வரிசையை மட்டுமே இது வழங்குகிறது. தரவுத்தளத்தின் மீது உங்களுக்கு முழுமையான கட்டுப்பாடு இல்லையென்றால் அல்லது விஷயங்களை அதிகம் குழப்ப விரும்பவில்லை, ஆனால் இன்னும் பதில் தேவைப்பட்டால் இது வேலைசெய்யக்கூடும்.

அறிவிக்க

தேர்ந்தெடுப்பதற்கான c1 கர்சர் * எங்கிருந்து…

தொடங்கும்

திறந்த சி 1;

சி 1 ஐ உள்ளே கொண்டு வாருங்கள் ..

(c1% அறிவிக்கப்படவில்லை) என்றால்

எந்த பதிவிற்கும் பிழை கையாளுதல் காணப்படவில்லை

முடிவு என்றால்;

மூடு c1;

முடிவுக்கு;

(உங்களுக்கு SQL தெரிந்தால், இந்த கட்டளை வரிகளால் நீங்கள் கொஞ்சம் குழப்பமடையக்கூடும்… ஆரக்கிள் பரிவர்த்தனை- SQL ஐப் பயன்படுத்தாது, மாறாக இது SQL, PL / SQL இன் சொந்த நடைமுறை மொழி நீட்டிப்பு. பரிவர்த்தனை- SQL ஐப் போலவே, PL / SQL செய்கிறது நிறைய புத்திசாலித்தனமான விஷயங்கள் மற்றும் அதன் சொந்த உரிமையில் மிகவும் சக்திவாய்ந்த கருவியாகும். ஆரக்கிள் பற்றி அறிய முயற்சிக்கும்போது இந்த PL / SQL கேள்விகள் உங்களுக்கு பயனுள்ளதாக இருக்கும்.)

எனவே இங்கே அடிப்படை பாடம் ORA-06512 பிழையை விடவும், தானாகவும், நீங்கள் நேரடியாக சரிசெய்யக்கூடிய ஒன்றல்ல. அதற்கு பதிலாக உண்மையான பிழை என்ன என்பதை நீங்கள் கண்டுபிடிக்க வேண்டும், இது மற்ற பிழைக் குறியீடுகள் உங்களுக்குச் சொல்லும், பின்னர் அந்த பிழைகளை ஒவ்வொன்றாக நிவர்த்தி செய்யுங்கள்.

பகிர்வதற்கு உங்களிடம் ஏதேனும் ஆரக்கிள் குறிப்புகள் அல்லது தந்திரங்கள் உள்ளதா? கருத்துகளில் அவற்றைப் பற்றி எங்களுக்குத் தெரியப்படுத்துங்கள்!

ஆரக்கிள் டி.பியில் ora-06512 பிழைகளை எவ்வாறு சரிசெய்வது