क्योंकि यह पोस्ट "ओआरए -00 9 42: तालिका या दृश्य मौजूद नहीं है" के लिए खोज करते समय स्टैक ओवरफ्लो पर पाया गया शीर्ष है, मैं इस त्रुटि का एक और संभावित कारण उल्लेख करना चाहता हूं (कम से कम ओरेकल 12 सी में): ए तालिका एक डिफ़ॉल्ट मान सेट करने के लिए अनुक्रम का उपयोग करती है और सम्मिलित क्वेरी निष्पादित करने वाले उपयोगकर्ता को अनुक्रम पर चुनिंदा विशेषाधिकार नहीं होता है। यह मेरी समस्या थी और इसे समझने के लिए मुझे एक अनावश्यक रूप से लंबा समय लगा।
समस्या को पुन: करने के लिए, 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;
स्रोत
2016-03-22 21:19:34
'dba_objects' नियमित उपयोगकर्ता के लिए उपलब्ध नहीं है। आपको इसके बजाय 'all_objects' का उपयोग करना चाहिए। –
आपकी रुचि के लिए बहुत बहुत धन्यवाद, मैंने 'ग्राहक' तालिका के मालिक को देखने के लिए पहली क्वेरी निष्पादित की, मुझे परिणाम "0 पंक्तियां चयनित" मिलीं। तो इसका मतलब है कि मेरे द्वारा बनाए गए उपयोगकर्ता को मुझे लगता है कि निजीकरण की आवश्यकता नहीं है? – user2304042