在不影响现有调用的情况下,使用默认值为现有PLSQL Type添加新属性



我有下面的代码片段,我正在创建一个具有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;

相关内容

  • 没有找到相关文章

最新更新