Oracle:添加保留字作为列名

Nea*_*ers -1 oracle alter-table

我正在尝试将测试系统上的表同步到生产中的表。在生产中,尽管可能很糟糕,但我相信他们使用保留字 SITE 作为列名。

alter table MY_TABLENAME
   modify ("SITE" varchar2(50),
           LOCATION_ID varchar2(50)
   ) 
   ;
Run Code Online (Sandbox Code Playgroud)

以上给出了错误:

ORA-00904: "SITE": 无效标识符

没有引号或括号的相同错误。

Bal*_*app 5

Oracle SQL 保留字

如果你真的想使用保留字,你可以在双引号之间使用它,但这就是生活变得复杂的地方。

SQL> alter table t1 add (number number);
alter table t1 add (number number)
                    *
ERROR at line 1:
ORA-00904: : invalid identifier


SQL> alter table t1 add ("NUMBER" number);

Table altered.

SQL> desc t1
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 C1                                                 NUMBER
 NUMBER                                             NUMBER

SQL> select number from t1;
select number from t1
       *
ERROR at line 1:
ORA-00936: missing expression


SQL> select NUMBER from t1;
select NUMBER from t1
       *
ERROR at line 1:
ORA-00936: missing expression


SQL> select "NUMBER" from t1;

no rows selected

SQL>
Run Code Online (Sandbox Code Playgroud)