我有下面的代码片段,我正在创建一个具有2个属性的类型。
CREATE OR REPLACE
TYPE test_params IS OBJECT (
F_days number,
F_comments VARCHAR2 (100)
);
/
我使用上面的类型如下
Declare
tp test_params;
tp1 test_params;
BEGIN
tp:= test_params(1,'asd');
tp.f_days:=1;
dbms_output.put_line(tp.f_days);
END;
打印1
现在,如果我想添加1个属性注释varchar(50)到我的类型,我不想打扰上面的代码,我想要上面的输出。
请指教我一下
你可以创建一个带有第三个可选参数的构造函数,这样你的代码就可以继续工作了。
create or replace
type test_params is object (
f_days number,
f_comments varchar2 (100),
comments varchar2(50),
constructor function test_params(
f_days number,
f_comments varchar2,
comments varchar2 default null
) return self as result
);
create or replace
type body test_params
as
constructor function test_params(
f_days number,
f_comments varchar2,
comments varchar2 default null
) return self as result
as
begin
self.f_days := f_days;
self.f_comments := f_comments;
self.comments := comments;
return;
end;
end;