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

ORA-00904:अमान्य पहचानकर्ता

आपकी समस्या उन हानिकारक दोहरे उद्धरण चिह्नों की है।

SQL> CREATE TABLE "APC"."PS_TBL_DEPARTMENT_DETAILS"
  2  (
  3    "Company Code" VARCHAR2(255),
  4    "Company Name" VARCHAR2(255),
  5    "Sector_Code" VARCHAR2(255),
  6    "Sector_Name" VARCHAR2(255),
  7    "Business_Unit_Code" VARCHAR2(255),
  8    "Business_Unit_Name" VARCHAR2(255),
  9    "Department_Code" VARCHAR2(255),
 10    "Department_Name" VARCHAR2(255),
 11    "HR_ORG_ID" VARCHAR2(255),
 12    "HR_ORG_Name" VARCHAR2(255),
 13    "Cost_Center_Number" VARCHAR2(255),
 14    " " VARCHAR2(255)
 15  )
 16  /

Table created.

SQL>

Oracle SQL हमें डेटाबेस ऑब्जेक्ट नामों के मामले को अनदेखा करने की अनुमति देता है बशर्ते हम या तो उन्हें अपर केस में सभी नामों के साथ बनाते हैं, या दोहरे उद्धरण चिह्नों का उपयोग किए बिना। यदि हम स्क्रिप्ट में मिश्रित केस या लोअर केस का उपयोग करते हैं और पहचानकर्ताओं को दोहरे उद्धरण चिह्नों में लपेटते हैं तो हमें दोहरे उद्धरण चिह्नों और सटीक मामले का उपयोग करने की निंदा की जाती है जब भी हम वस्तु या उसकी विशेषताओं का उल्लेख करते हैं:

SQL> select count(*) from PS_TBL_DEPARTMENT_DETAILS
  2  where Department_Code = 'BAH'
  3  /
where Department_Code = 'BAH'
      *
ERROR at line 2:
ORA-00904: "DEPARTMENT_CODE": invalid identifier


SQL> select count(*) from PS_TBL_DEPARTMENT_DETAILS
  2  where "Department_Code" = 'BAH'
  3  /

  COUNT(*)
----------
         0

SQL>

tl;डॉ

डीडीएल लिपियों में दोहरे उद्धरण चिह्नों का प्रयोग न करें

(मुझे पता है कि अधिकांश तृतीय पक्ष कोड जनरेटर करते हैं, लेकिन वे अपने सभी ऑब्जेक्ट नामों को अपर केस में रखने के लिए पर्याप्त अनुशासित हैं।)

विपरीत भी सही है। यदि हम दोहरे उद्धरण चिह्नों का उपयोग किए बिना तालिका बनाते हैं …

create table PS_TBL_DEPARTMENT_DETAILS
( company_code VARCHAR2(255),
  company_name VARCHAR2(255),
  Cost_Center_Number VARCHAR2(255))
;

... हम इसे और इसके स्तंभों को संदर्भित कर सकते हैं, जो भी मामले में हमारे लिए उपयुक्त हो:

select * from ps_tbl_department_details

... या

select * from PS_TBL_DEPARTMENT_DETAILS;

... या

select * from PS_Tbl_Department_Details
where COMAPNY_CODE = 'ORCL'
and cost_center_number = '0980'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS EC2 से AWS RDS में Oracle डेटाबेस माइग्रेट करना, भाग 3

  2. कैसे पता करें कि Oracle में कोई विशेष तालिका कब बनाई गई थी?

  3. एजेंट अवरुद्ध है

  4. स्थानीय आईआईएस पर ओरेकल ओआरए-12154 त्रुटि, लेकिन विजुअल स्टूडियो डेवलपमेंट सर्वर के साथ नहीं

  5. Oracle ODBC कनेक्शन के साथ पैरामीटर्स का उपयोग करना