我从函数返回一个表 首先,我正在创建一个包含将要返回的字段的新对象类型
create or replace type t_col as object (
i number,
n varchar2(30)
);
然后我创建一个嵌套表:
create or replace type t_nested_table as table of t_col;
然后创建一个返回表
的函数create or replace function return_table return t_nested_table as
v_ret t_nested_table:= t_nested_table();
begin
v_ret.extend;
v_ret(v_ret.count) := t_col(1, 'one');
v_ret.extend;
v_ret(v_ret.count) := t_col(2, 'two');
v_ret.extend;
v_ret(v_ret.count) := t_col(3, 'three');
return v_ret;
end return_table;
问题是当我在函数中使用函数中的以下行创建类型为t_nested_table
的对象时
v_ret t_nested_table:= t_nested_table();
它创建了一个具有公共访问权限的SYSTPIeQAK45TO9TgUywLAQqu+g==
对象,其他模式用户可以访问此对象,是否可以将它们设为私有。
答案 0 :(得分:0)
有没有办法让他们私有
实现这一目标的唯一方法是:
正文包含实现细节和私有声明,这些声明对包外的代码隐藏。在包体的声明部分之后是可选的初始化部分,它保存用于初始化包变量并执行任何其他一次性设置步骤的语句。