Oracle刪除視圖

在本教學中,您將學習如何使用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語句從資料庫中刪除視圖。


上一篇: Oracle檢查約束 下一篇: Oracle過程