有時我們在定義欄位名及別名時所用名與oracle關鍵字同名,這時該如何處理呢?
其實很簡單,只要在此關鍵字加上"",如"group"
看下面的例子:
複製代碼 代碼如下:SQL> DROP TABLE k;
Table dropped
-- 建立表K,欄位名為UID(oracle關鍵字)
SQL> CREATE TABLE k(UID INT);
CREATE TABLE k(UID INT)
ORA-00904: : invalid IDENTIFIER
-- 欄位名加""表建立成功
SQL> CREATE TABLE k("UID" INT);
Table created
--插入一些資料
SQL> INSERT INTO k VALUES(1);
1 row inserted
SQL> INSERT INTO k VALUES(2);
1 row inserted
SQL> INSERT INTO k VALUES(3);
1 row inserted
-- 查詢時加不加""都正常(似乎不太符合規範)
SQL> SELECT UID FROM k;
UID
----------
5
5
5
SQL> SELECT "UID" FROM k;
UID
---------------------------------------
1
2
3
-- update時必須加上""
SQL> UPDATE k SET UID=5 WHERE UID=3;
UPDATE k SET UID=5 WHERE UID=3
ORA-01747: invalid user.table.column, table.column, or column specification
SQL> UPDATE k SET "UID"=5 WHERE "UID"=3;
1 row UPDATED
總結:oracle可以在"關鍵字"的形式引用關鍵字作為欄位名與查詢語句的別名。如果不是特殊情況最好不要使用,以免引起代碼編寫過程中的錯誤。