2012-11-22 15 views
5

Possible Duplicate:
Simple Oracle query: literal does not match format stringओरेकल - शाब्दिक से मेल नहीं खाता प्रारूप स्ट्रिंग त्रुटि

मैं निम्न त्रुटि हो रही है:

INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0) 

ERROR at line 1: ORA-01861: literal does not match format string ` 

पहले क्षेत्र एक DATE स्वरूप है।

कोई विचार?

धन्यवाद।

उत्तर

17

आप एक तिथि स्तंभ के लिए एक स्ट्रिंग मान डालने कर रहे हैं, तो आप INSERT के दौरान एक तारीख को परिवर्तित करना to_date() समारोह का उपयोग कर की जरूरत है। इस फ़ंक्शन का उपयोग करते समय आप स्ट्रिंग का प्रारूप प्रदान करेंगे।

to_date() समारोह प्रारूप:

to_date(string1, [ format_mask ], [ nls_language ]) 

तो आपकी क्वेरी इस तरह होगा:

insert into CatalogueEntry 
values 
(
    to_date('2001-12-10', 'yyyy-mm-dd'), 
    2, 
    14.99, 
    1, 
    0); 

देखें SQL Fiddle with demo

+3

एक अन्य विकल्प एक ANSI SQL शाब्दिक उपयोग करने के लिए है: 'तारीख '2001 12-10'' –

+0

@a_horse_with_no_name 'date' literal NLS_DATE_FORMAT सेटिंग्स पर निर्भर करता है, इस प्रकार ओपी की समस्या का वैकल्पिक समाधान नहीं हो सकता है। –

+2

@ निकोलसक्रसनोव: एएनएसआई तिथि अक्षर किसी भी एनएलएस या अन्य पर्यावरण सेटिंग्स से पूरी तरह से स्वतंत्र हैं (यह * 'YYYY-MM-DD' होना है)। तो यह * एक मान्य विकल्प है (वास्तव में कम टाइपिंग और डीबीएमएस की एक विस्तृत श्रृंखला में काम करता है) –

1

कोशिश इस

INSERT INTO CatalogueEntry 
       VALUES(to_date('2001-12-10','yyyy-mm-dd', 2, 14.99, 1, 0); 
संबंधित मुद्दे