私は次のものを持っています:
create type customer as object (
id number, name varchar2(10), points number,
member procedure add_points(num_points number)
) not final;
/
create type body customer as
member procedure add_points(num_points number) is
begin
points := points + num_points;
commit;
end add_points;
end;
/
create table customer_table of customer;
/
insert into customer_table values (customer(123,'joe',10));
/
次に、これは匿名ブロックです。
declare
cust customer;
begin
select treat(value(c) as customer) into cust from customer_table c where id=123;
c.add_points(100);
end;
しかし、何も起こりません-ポイント値は10のままです。
私は何を逃しましたか?メンバープロシージャを作成update...set...commit
し、ポイントと指定されたIDを渡すと、機能します。
ありがとう。