包中声明的类型的实例在编译调试后是不透明的

Posted

技术标签:

【中文标题】包中声明的类型的实例在编译调试后是不透明的【英文标题】:Instance of a type declared within package is opaque after compilation for debug 【发布时间】:2015-09-15 12:52:42 【问题描述】:

所以我在包中有一个类型声明:

TYPE lt_sometpye IS TABLE OF gt_sometype INDEX BY PLS_INTEGER;

我面临两个问题:

第一个我可以在数据库中创建一个类型,而不是在包中,它看起来像

TYPE lt_sometpye IS TABLE OF gt_sometype;

但它不能被INDEX BY PLS_INTEGER 索引,这是一个要求。

第二个或者我在包中声明了相同类型的索引。编译后,它的实例在调试时是不透明的。

在这两种情况下,gt_sometype 也被编译用于调试。

如何让这种类型的实例在调试期间显示实际数据?

【问题讨论】:

关联数组 (index by) 是 PL/SQL-only 集合类型。 SQL(至少高达 11g)不支持它。 谢谢,我更新了标签,添加了这是针对 11g2 的 【参考方案1】:

我很困惑你的问题是什么。为什么不是这个?

create or replace type matt_typ AS OBJECT ( a number );

declare
  type plsql_type_t is table of matt_typ INDEX BY PLS_INTEGER;
  l_tab plsql_type_t;
begin
  l_tab (l_tab.count+1) := new matt_typ(5);
end;

抱歉,我知道这不是答案,但 SQL 不适合评论。

【讨论】:

这与我在第二个问题中描述的类似,所以对于 plsql_type_t 我看不到属性值但变得不透明。

以上是关于包中声明的类型的实例在编译调试后是不透明的的主要内容,如果未能解决你的问题,请参考以下文章

C编译器中是不是有调试模式编译标志的标准?

如何检查 DLL 是不是经过调试编译 [重复]

两个问题的调试过程

Xamarin Studio 是不是应该在为调试目标编译时生成 APK?

DTrace pid 提供程序是不是仅适用于调试模式编译的程序?

XAML 是不是有用于调试模式的条件编译器指令?