在 sqlplus 中重命名名为 TYPE、LEVEL 的列
Rename column named TYPE, LEVEL in sqlplus
这需要在 sql 加上完成。
您好,我正在努力重命名 table 中的两列。它们被命名为 "TYPE" 和 "LEVEL".
这需要在 sql 加上无一例外地完成。
以下内容无效(在 sql 开发人员中有效):
alter table client rename column level to clevel;
alter table client rename column "level" to clevel;
您还可以在 sqlplus 中执行 sql 脚本。只需将您的语句保存在一个文件中,然后使用以下命令:
@{file-path}
另请参阅此 link
LEVEL 是一个 Oracle 关键字,虽然没有保留。如果您想将其用作对象名称,则需要使用 双引号 用 带引号的标识符 来表示对象的名称引用那个对象。
SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';
KEYWORD R
------------------------------ -
LEVEL N
SQL>
这就是如果您使用关键字 LEVEL 作为 非引号标识符 的原因,它将引发错误:
SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
*
ERROR at line 1:
ORA-00904: : invalid identifier
现在,根据有关 Database Object Names and Qualifiers 的文档,如果您使用双引号创建对象,它将 区分大小写 并且必须始终以相同的方式使用在引用对象的任何地方。
例如,
SQL> CREATE TABLE t1("level" NUMBER);
Table created.
SQL>
SQL> ALTER TABLE t1 RENAME COLUMN "level" to clevel;
Table altered.
SQL>
SQL> CREATE TABLE t2("LEVEL" NUMBER);
Table created.
SQL>
SQL> ALTER TABLE t2 RENAME COLUMN "LEVEL" to clevel;
Table altered.
SQL>
最好不要使用关键字,并给出适当的命名规则。
SQL> CREATE TABLE t(clevel NUMBER);
Table created.
SQL>
这需要在 sql 加上完成。
您好,我正在努力重命名 table 中的两列。它们被命名为 "TYPE" 和 "LEVEL".
这需要在 sql 加上无一例外地完成。
以下内容无效(在 sql 开发人员中有效):
alter table client rename column level to clevel;
alter table client rename column "level" to clevel;
您还可以在 sqlplus 中执行 sql 脚本。只需将您的语句保存在一个文件中,然后使用以下命令:
@{file-path}
另请参阅此 link
LEVEL 是一个 Oracle 关键字,虽然没有保留。如果您想将其用作对象名称,则需要使用 双引号 用 带引号的标识符 来表示对象的名称引用那个对象。
SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';
KEYWORD R
------------------------------ -
LEVEL N
SQL>
这就是如果您使用关键字 LEVEL 作为 非引号标识符 的原因,它将引发错误:
SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
*
ERROR at line 1:
ORA-00904: : invalid identifier
现在,根据有关 Database Object Names and Qualifiers 的文档,如果您使用双引号创建对象,它将 区分大小写 并且必须始终以相同的方式使用在引用对象的任何地方。
例如,
SQL> CREATE TABLE t1("level" NUMBER);
Table created.
SQL>
SQL> ALTER TABLE t1 RENAME COLUMN "level" to clevel;
Table altered.
SQL>
SQL> CREATE TABLE t2("LEVEL" NUMBER);
Table created.
SQL>
SQL> ALTER TABLE t2 RENAME COLUMN "LEVEL" to clevel;
Table altered.
SQL>
最好不要使用关键字,并给出适当的命名规则。
SQL> CREATE TABLE t(clevel NUMBER);
Table created.
SQL>