调试大型软件包时,Oracle DBMS_DEBUG.GET_VALUE无法获取变量值

问题描述

我尝试调试PL \ sql中的某些功能。当我调试大型程序包(程序包主体包含21666行代码)时,我看不到变量值,但总是得到(不是变量)。

添加了调试信息。

调试较小的软件包时,不会发生此问题。

这是PL \ sql Developer调试日志的一部分:

kubectl port-forward
begin
  handle.owner := :package_owner;
  handle.name  := :package_name;

  if :inbody = 1 then
     handle.namespace := sys.dbms_debug.namespace_pkg_body;
  else
     handle.namespace := sys.dbms_debug.namespace_pkgspec_or_toplevel;
  end if;  
  
  :result := sys.dbms_debug.get_value(variable_name => :variable_name,handle => handle,scalar_value => :scalar_value,format => :format);
  if :result = 16 then :result := 3; end if;
end;
             
:RESULT = 3
:VARIABLE_NAME = requisition_no_
:SCALAR_VALUE = Null
:FORMAT = Null
:PACKAGE_OWNER = USER
:PACKAGE_NAME = PURCHASE_API
:INBODY = 1

有人知道如何解决该问题吗? 也许有一些Oracle Server配置可以告诉程序包主体在堆栈上具有可变值的大小。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)