Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Đổi tên cột có tên TYPE, LEVEL trong sqlplus

CẤP ĐỘ là một từ khóa của Oracle , mặc dù không được bảo lưu. Nếu bạn muốn sử dụng nó làm tên đối tượng thì bạn cần đại diện cho tên của đối tượng bằng số nhận dạng được trích dẫn sử dụng dấu ngoặc kép bất cứ khi nào bạn đề cập đến đối tượng đó.

Từ khóa
SQL> SELECT keyword, reserved FROM V$RESERVED_WORDS WHERE keyword='LEVEL';

KEYWORD                        R
------------------------------ -
LEVEL                          N

SQL>

Đó là lý do nếu bạn sử dụng từ khóa LEVEL làm từ định danh không được trích dẫn , nó sẽ xuất hiện một lỗi:

SQL> CREATE TABLE t(level NUMBER);
CREATE TABLE t(level NUMBER)
               *
ERROR at line 1:
ORA-00904: : invalid identifier

Bây giờ, theo tài liệu về Tên và định nghĩa đối tượng cơ sở dữ liệu , nếu bạn tạo đối tượng bằng cách sử dụng dấu ngoặc kép, đối tượng đó sẽ trở thành phân biệt chữ hoa chữ thường và phải luôn được sử dụng theo cùng một cách ở bất cứ nơi nào đối tượng được tham chiếu.

Ví dụ:

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>

Tốt hơn là không sử dụng từ khóa và đưa ra quy ước đặt tên phù hợp.

SQL> CREATE TABLE t(clevel NUMBER);

Table created.

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MAX (DATE) - SQL ORACLE

  2. Chính xác thì trunc (ngày tháng, 'IW') là gì?

  3. oracle:Tên cột động

  4. Làm cách nào để tạo một bảng có các ràng buộc trong khi lấy dữ liệu từ một bảng khác

  5. Oracle thiết lập NLS_LANG mặc định