2010-10-13 14 views
14

की अनुमति नहीं है मैंने थोड़ी देर के लिए ओरेकल का उपयोग नहीं किया है, इसलिए मैं थोड़ी सी जंगली हूं।ऑरैकल त्रुटि, कॉलम को

यह मेरी मेज है: मैं हो रही है

insert into calendar 
(username, content, dateContent, type) 
values 
(chris, assignment due, to_date('01-OCT-2010 13:00','DD-MON-YYYY HH24:MI'), PUB) 
/

:

ORA-00984: column not allowed here 

प्रकार स्तंभ की ओर इशारा करते

create table calendar(
username VARCHAR2(12), 
content VARCHAR2(100), 
dateContent DATE, 
type CHAR(3) CHECK (type IN ('PUB', 'PRV'))); 

लेकिन जब मैं इस तरह एक मूल्य डालने के लिए कोशिश अतं मै। मुझे एहसास है कि मुझे DATE फ़ील्ड के साथ कुछ सही नहीं मिल रहा है क्योंकि मैंने कभी इसका उपयोग नहीं किया है।

मैंने क्या गलत किया है?

उत्तर

21

आप उद्धरण डाल करने के लिए दौर varchar2 महत्व देता

तरह
insert into calendar(username, 
        content, 
        dateContent, 
        type) 
    values('chris', 
     'assignment due', 
     to_date('01-OCT-2010 13:00','DD-MON-YYYY HH24:MI'), 
     'PUB'); 
+0

यह चाल चल रहा था। धन्यवाद – Jackass

+3

यह एक भ्रामक त्रुटि संदेश और ऐसी चीज है जो हमें सभी को बाहर निकालती है, जंगली या नहीं। – APC

+1

नोट, कि आपको सिंगल कोट्स का उपयोग करना है - डबल कोट्स का उपयोग करके एक ही त्रुटि में हल हो जाता है। संभवतः क्योंकि डबल कोट्स तालिका नाम, कॉलम नाम इत्यादि के लिए आरक्षित हैं, जो त्रुटि संदेश बताते हैं। – iurii

3

ऐसा इसलिए हो सकता है क्योंकि type एक Oracle reserved word है?

ऐसा लगता है कि यह कोई मुद्दा नहीं है। एपीसी द्वारा टिप्पणी पढ़ें।

मैं इस उत्तर को हटा नहीं रहा क्योंकि मुझे टिप्पणी उपयोगी है।

+3

प्रकार है जरूरत है एक सुरक्षित लेकिन आरक्षित शब्द की तरह है जो नहीं किया जा सकता नहीं। ऐसा इसलिए है क्योंकि टाइप केवल ओरेकल 8 (तथाकथित ओआरडीबीएमएस रिलीज) में एक आरक्षित शब्द बन गया है। तब तक अस्तित्व में एक बड़ा कोडबेस था जिसने वैध रूप से टाइपम नाम के रूप में TYPE का उपयोग किया था। उदाहरण के लिए डेटा डिक्शनरी का USER_SOURCE व्यू। इसलिए कॉलम नाम के रूप में TYPE के उपयोग पर प्रतिबंध लगाने से बहुत सारे एप्लिकेशन टूट जाएंगे। – APC

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