Anonim

ஒரு SQL அறிக்கையை இயக்கும் போது நீங்கள் எப்போதாவது ora-00942 பிழையைக் காணலாம். இது ஒரு சில காரணங்களைக் கொண்டுள்ளது மற்றும் வழக்கம் போல், பிழை தொடரியல் மிகவும் விளக்கமாக இல்லை. இதற்கு எதிராக நீங்கள் வந்து, ora-00942 பிழையை எவ்வாறு சரிசெய்வது என்று தெரிந்து கொள்ள விரும்பினால், படிக்கவும்.

எனக்குத் தெரிந்தவரை, ora-00942 பிழைக்கு மூன்று முக்கிய காரணங்கள் உள்ளன:

  1. போதுமான பயனர் சலுகைகள்
  2. அட்டவணை அல்லது பார்வை உண்மையில் இல்லை
  3. அட்டவணை அல்லது பார்வை வேறு திட்டத்தில் உள்ளது

ஒவ்வொன்றையும் எவ்வாறு உரையாற்றுவது என்பதைக் காண்பிப்பேன்.

Ora-00942 பிழையை சரிசெய்யவும்

முதலில், ஒரு சிறிய மறுப்பு. நான் டிபிஏ இல்லை, நான் விண்டோஸ் நிர்வாகி மற்றும் டெஸ்க்டாப் மற்றும் சர்வர் வன்பொருள் தொழில்நுட்பம். SQL ஐ எவ்வாறு இயக்குவது என்பது எனக்குத் தெரியும், ஆனால் எந்த அளவிலான நிபுணத்துவத்திற்கும் அல்ல, நிச்சயமாக சிக்கல்களை சரிசெய்யக்கூடிய அளவிற்கு அல்ல. என்னுடைய ஒரு ஆரக்கிள் டிபிஏ நண்பரிடம் நான் உதவி கேட்க வேண்டியிருந்தது, எனவே நான் இந்த பகுதியை எழுதியபோது, ​​புத்திசாலித்தனமான பிட்கள் அனைத்தும் அவருடையவை.

Ora-00942 பிழையின் மூன்று காரணங்களின் பட்டியல் முழுமையானது அல்ல. இதற்கு பிற சீரற்ற காரணங்கள் உள்ளன, ஆனால் இந்த மூன்றும் மிகவும் பொதுவானவை.

போதுமான பயனர் சலுகைகள்

Ora-00942 பிழையின் ஒரு முக்கிய காரணம், கேள்விக்குரிய அட்டவணையை அணுக பயனருக்கு போதுமான சலுகைகள் இல்லை. இரண்டு வினவல்களை இயக்குவதன் மூலம் இதை நீங்கள் சரிபார்க்கலாம்.

- பயனர் அல்லது பாத்திரத்திற்கான கணினி சலுகைகளை பட்டியலிடுங்கள் * dba_sys_privs WHERE மானியம் பெறுபவர் (& user_role, 'PUBLIC');

- பயனர் அல்லது பாத்திரத்திற்கான பொருள் சலுகைகளை பட்டியலிடுங்கள்

மானியம் பெறுபவர், உரிமையாளர் || '.'

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

நீங்கள் பயன்படுத்தும் திட்டத்தின் பயனருக்கு INSERT சலுகைகள் உள்ளன, ஆனால் சலுகைகளைத் தேர்ந்தெடுக்கவில்லை என்றால் ora-00942 பிழையும் ஏற்படலாம். மீண்டும், சலுகை நிலையைச் சரிபார்த்து, பட்டியலில் SELECT ஐச் சேர்க்கவும் அல்லது அதைச் செய்ய ஒரு DB நிர்வாகியைக் கேட்கவும். வெளிப்படையாக, ஒவ்வொரு திட்டத்திற்கும் குறிப்பிட்ட SELECT சலுகை வழங்கப்பட வேண்டும், இல்லையெனில் நீங்கள் இன்னும் ora-00942 பிழையைப் பார்ப்பீர்கள்.

அட்டவணை அல்லது பார்வை உண்மையில் இல்லை

Ora-00942 பிழையின் இந்த காரணம் தவறான வினவல் தொடரியல் அல்லது அட்டவணை இல்லை என்றால் ஏற்படலாம். இது தொடங்குவதற்கான தர்க்கரீதியான முதல் இடமாகத் தோன்றினாலும், பயனர் சலுகை என்பது பிழையின் முதலிடக் காரணம் என்று நான் நம்பத்தகுந்தவனாக இருக்கிறேன். அட்டவணை அங்கு இல்லை அல்லது தவறான அட்டவணை தொடரியல் பயன்படுத்தப்படுகிறது இரண்டாவது.

அட்டவணை இருக்கிறதா என்று சோதிக்க, முதலில் வினவலின் தொடரியல் சரிபார்க்கவும். தொடரியல் சரியாக இருந்தால், இந்த வினவலை இயக்கவும்.

அனைத்து உரிமையாளர்களிடமிருந்தும் உரிமையாளர், பொருள்_பெயர், பொருள்_ வகை ஆகியவற்றைத் தேர்ந்தெடுக்கவும் WHERE பொருள்_ வகை IN ('அட்டவணை', 'பார்வை') மற்றும் பொருள்_பெயர் = 'YOUR_TABLE_NAME';

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

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

அட்டவணை அல்லது பார்வை வேறு திட்டத்தில் உள்ளது

பயனருக்கு சலுகைகள் இருந்தால், அட்டவணை உள்ளது மற்றும் நீங்கள் இன்னும் ora-00942 பிழையைப் பார்க்கிறீர்கள் என்றால், அது ஸ்கீமாவுக்கு கீழே இருக்கும். நீங்கள் பல திட்டங்களை நிர்வகிக்கிறீர்கள் என்றால், உங்களுடையதல்ல ஒரு திட்டத்திற்கு எதிராக வினவலை இயக்குவது எளிது. நீங்கள் பிஸியாக இருக்கும்போது, ​​அதற்கு எதிராக இருக்கும்போது, ​​இது ஒரு எளிய பிழை.

உங்களால் முடிந்தால் ஸ்கீமாவை கைமுறையாக சரிபார்க்கவும் அல்லது உங்கள் வினவலின் FROM வரிசையில் ஸ்கீமா பெயரைச் சேர்க்கவும். புதிய திட்டத்திற்கான சரியான சலுகைகள் உங்களிடம் இல்லையென்றால், ora-00942 பிழையை மீண்டும் காண்பீர்கள். முதல் பயனர் சலுகை திருத்தத்திற்குத் திரும்பி, அதனுடன் தொடர்புடைய திட்டத்தைச் சரிபார்க்கவும் அல்லது உங்களுக்காக அதைச் செய்ய உங்கள் டிபிஏவைப் பெறவும்.

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

Ora-00942 பிழையை சரிசெய்ய வேறு ஏதேனும் வழி உங்களுக்குத் தெரிந்தால், அதைப் பற்றி கீழே சொல்லுங்கள்!

Ora-00942 பிழையை எவ்வாறு சரிசெய்வது