Comment compiler une Vue dans Oracle ?
Comment ajouter une contrainte dans une Vue ?
Comment supprimer une contrainte dans une Vue ?
Une Vue est une table logique pointant sur une ou plusieurs Tables ou Vues et ne contient physiquement pas de données.
ALTER VIEW [ schema. ]view
{ ADD CONSTRAINT constraint DISABLE NOVALIDATE;
| DROP CONSTRAINT constraint
| COMPILE
} ;
|
Parfois il est nécessaire de compiler une Vue si la structure de la table de base à été modifiée.
SQL> CREATE VIEW v_alter_view AS SELECT ename, job, sal FROM emp WHERE deptno = 20; Vue créée. SQL> COL object_name FORMAT A20; SQL> SELECT object_name, object_type, status FROM user_objects WHERE object_name = UPPER('v_alter_view'); OBJECT_NAME OBJECT_TYPE STATUS -------------------- ------------------- ------- V_ALTER_VIEW VIEW VALID SQL> |
Nous allons modifier la structure de la table de base, et notre Vue sera alors invalide.
SQL> ALTER TABLE scott.emp MODIFY(job VARCHAR2(15 BYTE)); Table modifiée. SQL> COL object_name FORMAT A20; SQL> SELECT object_name, object_type, status FROM user_objects WHERE object_name = UPPER('v_alter_view'); OBJECT_NAME OBJECT_TYPE STATUS -------------------- ------------------- ------- V_ALTER_VIEW VIEW INVALID SQL> |
Nous allons alors compiler la Vue avec ALTER VIEW COMPILE afin de la rendre VALIDE.
SQL> ALTER VIEW v_alter_view COMPILE; Vue modifiée. SQL> COL object_name FORMAT A20; SQL> SELECT object_name, object_type, status FROM user_objects WHERE object_name = UPPER('v_alter_view'); OBJECT_NAME OBJECT_TYPE STATUS -------------------- ------------------- ------- V_ALTER_VIEW VIEW VALID SQL> |
Ce sont des contraintes déclaratives seulement. Non actives.
SQL> ALTER VIEW v_alter_view ADD CONSTRAINT pk_alter_view PRIMARY KEY (ename) DISABLE NOVALIDATE; Vue modifiée. |
SQL> ALTER VIEW v_alter_view DROP CONSTRAINT pk_alter_view; Vue modifiée. SQL> |
SQL> DROP VIEW v_alter_view CASCADE CONSTRAINT; Vue supprimée. SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• CREATE VIEW • SQL INSERT INTO TABLE ORACLE • CREATE TABLE ORACLE • Update Table avec MERGE INTO • SQL INSERT INTO plusieurs TABLE ORACLE |