Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

SQL त्रुटि:ORA-00942 तालिका या दृश्य मौजूद नहीं है

चूंकि यह पोस्ट "ओआरए -00942:तालिका या दृश्य मौजूद नहीं है" की खोज करते समय स्टैक ओवरफ्लो पर पाया जाने वाला शीर्ष है, मैं इस त्रुटि के एक और संभावित कारण का उल्लेख करना चाहता हूं (कम से कम ओरेकल 12 सी में):एक तालिका अनुक्रम का उपयोग करती है डिफ़ॉल्ट मान सेट करने के लिए और सम्मिलित क्वेरी निष्पादित करने वाले उपयोगकर्ता के पास अनुक्रम पर चयन विशेषाधिकार नहीं है। यह मेरी समस्या थी और मुझे इसे समझने में अनावश्यक रूप से लंबा समय लगा।

समस्या को पुन:उत्पन्न करने के लिए, निम्न SQL को user1 के रूप में निष्पादित करें :

create sequence seq_customer_id;

create table customer (
c_id number(10) default seq_customer_id.nextval primary key,
name varchar(100) not null,
surname varchar(100) not null
);

grant select, insert, update, delete on customer to user2;

फिर, इस इंसर्ट स्टेटमेंट को user2 . के रूप में निष्पादित करें :

insert into user1.customer (name,surname) values ('michael','jackson');

परिणाम "ORA-00942:तालिका या दृश्य मौजूद नहीं है" भले ही user2 होगा user1.customer . पर इन्सर्ट और चुनिंदा विशेषाधिकार हैं तालिका और स्कीमा स्वामी नाम के साथ तालिका को सही ढंग से उपसर्ग कर रहा है। समस्या से बचने के लिए, आपको अनुक्रम पर चुनिंदा विशेषाधिकार देना होगा:

grant select on seq_customer_id to user2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. राय मांगना :सभी तालिकाओं के लिए एक क्रम

  2. Oracle 11 डेटाबेस से कैसे कनेक्ट करें . जाल

  3. Oracle के अलावा RDBMS में कनेक्ट BY या पदानुक्रमित प्रश्न

  4. Oracle के डंप (सिस्टिमस्टैम्प) बाइट्स का अर्थ

  5. लिंक से ओरेकल का उपयोग करने का कोई तरीका है