2011-10-20 11 views
10

मेरे पास कैलेंडर्स नामक एक सारणी है।"दिनांक" कॉलम नाम के रूप में

अपने कॉलम में से एक 'तारीख'

नामित जब मैं तारीख स्तंभ यह त्रुटि ORA-01,747 अर्थात् अमान्य table.column देता है का चयन करना चाहते है।

select date from calendars 

मुझे लगता है कि ऐसा होता है क्योंकि 'तिथि' pl/sql के लिए एक आरक्षित शब्द है।

alter table calendars rename column date to date_d 

परिणाम है: ORA-00904 त्रुटि: अमान्य पहचानकर्ता समस्या यह स्तंभ नाम को परिवर्तित करना संभव भी नहीं है।

आप क्या सलाह देते हैं?

धन्यवाद।

+0

उपयोग में आरक्षित कीवर्ड संलग्न करें अपने 'desc कैलेंडर' – KevinDTimm

+0

यह * वास्तव में * उपयोग करने के लिए मान्य होना चाहिए कृपया पेस्ट (कोई भी) आरक्षित शब्द कॉलम नाम के रूप में '" दिनांक "या' [दिनांक] '(लेकिन शायद बाद वाला टीएसक्यूएल है?), लेकिन मैं नहीं करता ओरेकल का उपयोग नहीं करें ... शायद स्कीमा की अपेक्षा नहीं है? –

+0

(बीटीडब्ल्यू, जितना संभव हो मैं कोशिश कर सकता हूं, मैं नाम के कॉलम के साथ ऑरैकल में एक टेबल भी नहीं बना सकता) – KevinDTimm

उत्तर

16

आप की कोशिश की

select calendars.date from calendars; /* or you could alias "calendars" if you don't want to type so much */ 

कि काम नहीं करता है या मदद है, तो आप स्तंभ छोड़ने की कोशिश की (और शायद तालिका नाम उपसर्ग के साथ यह संदर्भित की कोशिश: calendars.date) है? How do I escape a reserved word in Oracle?

ऐसा लगता है कि ओरेकल केस-संवेदी अगर आप दोहरे उद्धरण चिह्नों का उपयोग किया जाएगा ताकि

select "date" from calendars; 

select "Date" from calendars; 
के समान नहीं है:


मैं भी इस पोस्ट पाया

+0

जब मैं तालिका का नाम या उपनाम जोड़ता हूं तो यह ORA-01747 त्रुटि देता है। मैंने कॉलम ड्रॉप करने की कोशिश नहीं की लेकिन कैलेंडर से चुनिंदा * में कोई समस्या नहीं है। इसलिए यदि कोई और कार्रवाई नहीं की जाएगी तो मुझे कॉलम ड्रॉप करने की आवश्यकता नहीं है। – bonsvr

+1

कैलेंडर से "DATE" का चयन करें इसे हल करें। यह तारीख थी, तारीख नहीं। – bonsvr

+0

केस-सेंसिटीविटी के संबंध में संकेत मेरे लिए चाल है। – mthomas

8

डबल कोट्स के साथ आरक्षित शब्द से बचने का प्रयास करें।

select "date" from calendars 
+0

ORA-00904 त्रुटि – bonsvr

+0

डबल-कोट्स 'दिनांक' कॉलम की तलाश करते समय ओरेकल अधिनियम को केस-संवेदी फैशन में बनाने लगते हैं। – FrustratedWithFormsDesigner

+0

@FrustratedWithFormsDesigner यह सच है। डबल-कोट्स का उपयोग करते समय केस बिल्कुल ठीक से मेल खाना चाहिए। –

1

तारीख एक आरक्षित कीवर्ड है और इसलिए

की तरह नहीं किया जा सकता

कुछ मेज से चयन की तारीख

वहाँ समस्या के लिए कई समाधान

  • तारीख स्तंभ की जरूरत हो सकता है
जैसे ब्रैकेट्स के अंदर संलग्न हों
  • बैकटिक

SELECT 'date' from tableName

  • उर्फ ​​

SELECT tableName.date from tableName

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