gpt4 book ai didi

plsql - PL/SQL 包开始/结束 block 之间的代码何时执行?

转载 作者:行者123 更新时间:2023-12-04 23:10:36 26 4
gpt4 key购买 nike

我有类似于以下代码段的 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 加载到内存中?什么时候编译包?什么时候第一次调用?是否被多次调用?有没有更好的方法来实现静态查找数组?

谢谢!

最佳答案

你可以引用这个链接:
http://www.dba-oracle.com/plsql/t_plsql_lookup_tables.htm

“这意味着该过程在包初始化期间执行。因此,在 session 的生命周期内,除非需要刷新缓存表,否则永远不会手动调用该过程。”

关于plsql - PL/SQL 包开始/结束 block 之间的代码何时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com