SQL$HELP_OLD72.HLB  —  ALTER  VIEW
    This statement allows the named view to be modified.

1  –  Environment

    You can use the ALTER VIEW statement:

    o  In interactive SQL

    o  Embedded in host language programs

    o  As part of a procedure in a SQL module

    o  In dynamic SQL as a statement to be dynamically executed

2  –  Format

  ALTER VIEW <view-name> -+-+-->  AS <select-expr> -----------------+-+->
                          | +-->  <check-option-clause> ------------+ |
                          | +-->  COMMENT IS -+-> 'text-literal'--+-+ |
                          | |                 +--------- / <------+ | |
                          | +-->  RENAME TO <new-view-name>  -------+ |
                          | +-->  WITH NO CHECK OPTION  ------------+ |
                          +-------------------  <---------------------+

  select-expr =

  -+-+->  select-clause  ------------+-+------+
   | +-> ( select-expr )  -----------+ |      |
   | +->   TABLE table-ref ----------+ |      |
   +------ select-merge-clause <-------+      |
     +------------------- <-------------------+
     +-+--------------------+--+------------------+--+--------------------+->
       +-> order-by-clause -+  +-> offset-clause -+  +-> limit-to-clause -+

  check-option-clause =

  WITH CHECK OPTION --+----------------------------------+-->
                      +-> CONSTRAINT <check-option-name> +

3  –  Arguments

3.1  –  AS

    Replaces the view select expression and the definitions of the
    columns. The number of expressions in the select list must match
    the original CREATE VIEW column list.

3.2  –  COMMENT_IS

    Replaces the comment currently defined for the view (if any).
    The comment will be displayed by the SHOW VIEW statement in
    Interactive SQL.

3.3  –  CONSTRAINT

    Specifies a name for the WITH CHECK OPTION constraint. If you
    omit the name, SQL creates a name. However, Oracle Rdb recommends
    that you always name constraints. If you supply a name for the
    WITH CHECK OPTION constraint, the name must be unique in the
    schema.

    The name for the WITH CHECK OPTION constraint is used by the
    INTEG_FAIL error message when an INSERT or UPDATE statement
    violates the constraint.

3.4  –  RENAME_TO

    Renames the current view. The new view name must not exist as the
    name of an existing view, table, sequence, or synonym.

3.5  –  WITH_CHECK_OPTION

    A constraint that places restrictions on update operations made
    to a view. The check option clause ensures that any rows that are
    inserted or updated in a view conform to the definition of the
    view. Do not specify the WITH CHECK OPTION clause with views that
    are read-only.

3.6  –  WITH_NO_CHECK_OPTION

    Removes any check option constraint currently defined for the
    view.

4  –  Examples

    Example 1: Changing the comment on a view

    A comment can be added or changed on a view using the COMMENT IS
    clause as shown in this example.

    SQL> show view (comment) current_job
    Information for table CURRENT_JOB

    SQL> alter view CURRENT_JOB
    cont>   comment is 'Select the most recent job for the employee';
    SQL> show view (comment) current_job
    Information for table CURRENT_JOB

    Comment on table CURRENT_JOB:
    Select the most recent job for the employee

    SQL>

    Example 2: Changing the column's results of a view definition

    The following view uses a derived table and join to collect
    the count of employees in each department. The view is used in
    several reporting programs used by the department and company
    managers.

    SQL> create view DEPARTMENTS_SUMMARY
    cont> as
    cont> select department_code, d.department_name,
    cont>        d.manager_id, jh.employee_count
    cont> from departments d inner join
    cont>      (select department_code, count (*)
    cont>         from job_history
    cont>         where job_end is null
    cont>         group by department_code)
    cont>           as jh (department_code, employee_count)
    cont>      using (department_code);
    SQL>
    SQL> show view DEPARTMENTS_SUMMARY;
    Information for table DEPARTMENTS_SUMMARY

    Columns for view DEPARTMENTS_SUMMARY:
    Column Name                     Data Type        Domain
    -----------                     ---------        ------
    DEPARTMENT_CODE                 CHAR(4)
    DEPARTMENT_NAME                 CHAR(30)
     Missing Value: None
    MANAGER_ID                      CHAR(5)
     Missing Value:
    EMPLOYEE_COUNT                  INTEGER
     Source:
    select department_code, d.department_name,
           d.manager_id, jh.employee_count
    from departments d inner join
         (select department_code, count (*)
            from job_history
            where job_end is null
            group by department_code) as jh (department_code, employee_count)
         using (department_code)

    SQL>

    The database administrator decides to create a column in the
    DEPARTMENTS table to hold the count of employees (rather than
    using a query to gather the total) and to maintain the value
    through triggers on EMPLOYEES and JOB_HISTORY (not shown here).
    Now the view can be simplified without resorting to a DROP
    VIEW and CREATE VIEW. The ALTER VIEW statement preserves the
    dependencies on the view from other views, triggers, and routines
    and so minimizes the work required to implement such a change.

    SQL> alter table DEPARTMENTS
    cont>     add column EMPLOYEE_COUNT integer;
    SQL>
    SQL> alter view DEPARTMENTS_SUMMARY
    cont> as
    cont> select department_code, d.department_name,
    cont>        d.manager_id, d.employee_count
    cont> from departments d;
    SQL>
    SQL> show view DEPARTMENTS_SUMMARY;
    Information for table DEPARTMENTS_SUMMARY

    Columns for view DEPARTMENTS_SUMMARY:
    Column Name                     Data Type        Domain
    -----------                     ---------        ------
    DEPARTMENT_CODE                 CHAR(4)
     Missing Value: None
    DEPARTMENT_NAME                 CHAR(30)
     Missing Value: None
    MANAGER_ID                      CHAR(5)
     Missing Value:
    EMPLOYEE_COUNT                  INTEGER
     Source:
    select department_code, d.department_name,
           d.manager_id, d.employee_count
    from departments d

    SQL>

    Example 3: Changing the WITH CHECK OPTION constraint of a view
    definition

    This example shows that a WITH CHECK OPTION constraint restricts
    the inserted data to the view's WHERE clause. Once the constraint
    is removed, the INSERT is no longer constrained.

    SQL> create view TOLIVER_EMPLOYEE
    cont> as select * from EMPLOYEES where employee_id = '00164'
    cont> with check option;
    SQL> insert into TOLIVER_EMPLOYEE (employee_id) value ('00000');
    %RDB-E-INTEG_FAIL, violation of constraint TOLIVER_EMPLOYEE_CHECKOPT1 caused operation to fail
    -RDB-F-ON_DB, on database DISK1:[DATABASES]MF_PERSONNEL.RDB;1
    SQL>
    SQL> alter view TOLIVER_EMPLOYEE with no check option;
    SQL>
    SQL> insert into TOLIVER_EMPLOYEE (employee_id) value ('00000');
    1 row inserted
    SQL>
Close Help