あなたの問題はそれらの有害な二重引用符です。
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; dr
DDLスクリプトで二重引用符を使用しないでください
(ほとんどのサードパーティのコードジェネレーターはそうしますが、すべてのオブジェクト名を大文字にするのに十分な規律があります。)
逆もまた真です。二重引用符を使用せずにテーブルを作成すると…
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'