正确使用Oracle类型成员函数

时间:2018-06-04 11:55:11

标签: oracle plsql types

我创建了用户定义的类型。它有会员功能。几乎所有人都使用相同的包函数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。它带来了性能问题。如何提高性能以及用户定义的类型成员函数的正确用法是什么?

谢谢。

0 个答案:

没有答案