【发布时间】:2009-11-24 20:20:58
【问题描述】:
我有类似于下面sn-p的PL/SQL代码:
create or replace
package body MY_PACKAGE as
type array_type is table of char index by varchar2(1);
lookup_array array_type;
function DO_SOMETHING(input nvarchar2)
return varchar2 as
begin
-- Do something here with lookup_array
end DO_SOMETHING;
procedure init_array as
begin
lookup_array('A') := 'a';
lookup_array('B') := 'b';
-- etc
end init_array;
begin
init_array;
end MY_PACKAGE;
它使用静态查找数组来处理提供给 DO_SOMETHING 的数据。我的问题是,什么时候调用 init_array 并将 lookup_array 加载到内存中?什么时候编译包?第一次调用是什么时候?是否多次调用?有没有更好的方法来实现静态查找数组?
谢谢!
【问题讨论】:
-
这不会编译 - 你有包的主体,但没有 spc
-
是的,我知道;它也不会编译,因为 DO_SOMETHING 函数是空的。这只是一个 sn-p,让人们了解我正在尝试做什么。
-
一个有效的例子不会让人分心。
-
少一些对讨论没有贡献的cmets也不会分散注意力。