我创建了用户定义的类型。它有会员功能。几乎所有人都使用相同的包函数report_pkg.get_data
。我做了其他一些事情。
create or replace type report_type is object
(
globalvar1 number(15),
globalvar2 varchar2(8),
member function getA return varchar2,
member function getB return varchar2,
member function getC return varchar2,
member function getD return varchar2
)
在成员函数中,我使用相同的函数。
member function getA return varchar2 is
rc tb_example%rowtype;
begin
rc := report_pkg.get_data(globalvar1 , globalvar2);
**Other stuff**
return rc.column1;
end;
member function getB return varchar2 is
rc tb_example%rowtype;
begin
rc := report_pkg.get_data(globalvar1 , globalvar2);
**Other stuff**
return rc.column2;
end;
member function getC return varchar2 is
rc tb_example%rowtype;
begin
rc := report_pkg.get_data(globalvar1 , globalvar2);
**Other stuff**
return rc.column3;
end;
member function getD return varchar2 is
rc tb_example%rowtype;
begin
rc := report_pkg.get_data(globalvar1 , globalvar2);
**Other stuff**
return rc.column4;
end;
当我在循环中运行以下代码时;
report_tab := report_type(globalvar1, globalvar2);
insert into tb_report(columna, columnb, columnc, columnd)
values (report_tab.getA, report_tab.getB, report_tab.getC, report_tab.getD);
毕竟我为每个成员函数运行report_pkg.get_data
。它带来了性能问题。如何提高性能以及用户定义的类型成员函数的正确用法是什么?
谢谢。