Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


自定义过程(函数)的运行栈大小(function_stack_size)

📄字数 621
👁️阅读量 加载中...

引入版本

v12.0.0

功能描述

用户自定义过程(函数)的运行栈大小。

参数属性

属性属性值
参数类型INTEGER
默认值1024
取值范围[100, 100000]
影响范围系统级
修改方式离线修改,重启生效

使用场景说明

  1. 该参数控制任务线程在处理 PL/SQL 时允许参与计算的最大变量数,每个变量都会消耗 32 字节运算栈,用于存放计算的结果或计算结果的地址。
  2. 单个任务线程上负责 PL/SQL 计算的运算栈内存 = function_stack_size × 32 + 1024。
  3. 该参数配置不足以满足运算 PL/SQL 时,系统会上报 E19006 异常,用户可根据实际需要适当调大该参数值。

示例

sql
-- 离线修改 function_stack_size
编辑 xugu.ini 修改 function_stack_size,重启数据库服务后生效。

-- 在线查看 function_stack_size
SQL> SHOW function_stack_size;

/*
 * 场景一:
 *   1. function_stack_size = 100;
 *   2. 重启数据库服务后新建连接;
 */
SQL> DECLARE
       v1 INTEGER;
       v2 INTEGER;
       v3 INTEGER;
       v4 INTEGER;
       v5 INTEGER;
       v6 INTEGER;
       v7 INTEGER;
       /*
        *  此处省略定义的其余 110 个变量;
        */
       v118 INTEGER;
       v119 INTEGER;
       v120 INTEGER;
     BEGIN
       send_msg('success.');
     END;
     /  -- 执行失败,抛出异常 E19006 运行栈溢出;