在本教學中,您將學習如何使用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過程