相关疑难解决方法(0)

如何防止Oracle针对函数结果的每个属性调用函数

我创建了一个包,其中包含一个返回对象的函数。
当通过 sql 检索对象详细信息时,该函数会被多次调用 - 每检索一个详细信息一次。
我相信应该可以只调用一次。

以下是演示该问题的示例:

CREATE OR REPLACE TYPE t_test AS OBJECT (
    v1              VARCHAR2(10),
    v2              VARCHAR2(10),
    v3              VARCHAR2(10),
    times_called    NUMBER
);
/

CREATE OR REPLACE PACKAGE test_pkg AS 
    times_called    NUMBER :=0;
    FUNCTION test(something IN VARCHAR2) RETURN t_test;
    PROCEDURE reset;

END test_pkg;
/

CREATE OR REPLACE PACKAGE BODY test_pkg IS
    PROCEDURE reset IS
    BEGIN
        times_called := 0;
    END;
    
    FUNCTION test(something IN VARCHAR2) RETURN t_test IS
        
    BEGIN
        times_called := times_called + 1;
        RETURN t_test('first', 'second', 'third', times_called);
    END; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql

0
推荐指数
1
解决办法
82
查看次数

标签 统计

oracle ×1

plsql ×1