A view that selects calls to functions, which have inverses, is
updateable. This means that the SQL compiler will use the inverse
function on the value being assigned before assigning the column.
This is done for both insert and update operations. No special
declaration is needed. If the function with inverse has multiple
arguments, all of which are columns, then assigning the function
will assign all the argument columns, having called the appropriate
inverse for getting each of the separate argument values.
SQL> insert into orders_2 (o_iid) values (1102000000003);
Done. -- 1 msec.
SQL> select * from orders_2 where o_w_id = 11;
O_IID O_C_IID O_ID O_D_ID O_W_ID O_C_ID O_ENTRY_D O_CARRIER_ID O_OL_CNT O_ALL_LOCAL
DECIMAL DECIMAL INTEGER NOT NULL INTEGER NOT NULL INTEGER NOT NULL INTEGER DATE INTEGER INTEGER INTEGER
1102000000003 NULL 3 2 11 NULL NULL NULL NULL NULL
1 Rows. -- 1 msec.
SQL> update item_euro set i_price = 120 where i_id = 1234;
The examples in this document used tables attached from remote
databases because the features discussed here are most likely to be
useful in such contexts. Also the query execution plans clearly
show which operations take place where. The inverse function
mechanism is however in no way limited to virtual database
applications. All the examples will work equally well with local