我有以下内容:
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,它就可以工作。
谢谢。