Oracle刪除檢視

2019-10-16 22:05:40

在本教學中,您將學習如何使用Oracle DROP VIEW語句從資料庫中刪除檢視。

Oracle DROP VIEW語句簡介

要從資料庫中刪除檢視,請使用以下DROP VIEW語句:

DROP VIEW schema_name.view_name 
[CASCADE CONSTRAINT];

下面來看看各個引數的說明 -

  • schema_name - 首先,指定包含檢視的模式的名稱。如果跳過模式名稱,則Oracle假定該檢視位於當前使用者模式中。
  • view_name - 其次,指定要刪除的檢視的名稱。如果一個檢視被其他檢視,物化檢視或同義詞所參照,Oracle將把這些物件標記為INVALID,但不會將其移除。
  • CASCADE CONSTRAINT - 第三,如果檢視有任何約束,則必須指定CASCADE CONSTRAINT子句以刪除參照檢視中的主鍵和唯一鍵的所有參照完整性約束。如果不這樣做,存在這樣的約束時,DROP VIEW語句將會失敗。

Oracle DROP VIEW範例

以下語句基於employees表建立一個名為salesman的檢視:

CREATE VIEW salesman AS 
SELECT
    *
FROM
    employees
WHERE
    job_title = 'Sales Representative';

該檢視僅返回職位為銷售代表的員工。

SELECT
    *
FROM
    salesman;

如下所示 -

以下語句基於salesman檢視建立另一個名為salesman_contacts的檢視:

CREATE VIEW salesman_contacts AS 
SELECT
    first_name,
    last_name,
    email,
    phone
FROM
    salesman;

salesman_contacts檢視返回推銷員的唯一名稱,電子郵件和電話:

SELECT
    *
FROM
    salesman_contacts;

執行上面查詢語句,得到以下結果 -

要刪除salesman檢視,請使用以下語句:

DROP VIEW salesman;

由於salesman_contacts檢視依賴於salesman檢視,因此在salesman檢視被刪除時變為無效。

可以通過查詢user_objects檢視中的資料來檢查檢視的狀態。請注意,物件名稱必須是大寫的。

SELECT
    object_name,
    status
FROM
    user_objects
WHERE
    object_type = 'VIEW'
    AND object_name = 'SALESMAN_CONTACTS';

執行上面查詢語句,得到以下結果 -

正如所看到的,salesman_contacts檢視的狀態是無效的。

要刪除salesman_contacts檢視,請使用以下DROP VIEW語句:

DROP VIEW salesman_contacts;

在本教學中,您學習了如何使用Oracle DROP VIEW語句從資料庫中刪除檢視。