小编mut*_*oss的帖子

pl/sql对象类型"ORA-06530:未初始化复合引用"错误

我有一个类型如下:

CREATE OR REPLACE TYPE tbusiness_inter_item_bag AS OBJECT (
   item_id              NUMBER,
   system_event_cd      VARCHAR2 (20),
   CONSTRUCTOR FUNCTION tbusiness_inter_item_bag RETURN SELF AS RESULT
);
CREATE OR REPLACE TYPE BODY tbusiness_inter_item_bag
AS
   CONSTRUCTOR FUNCTION tbusiness_inter_item_bag RETURN SELF AS RESULT
   AS
   BEGIN
      RETURN;
   END;
END;
Run Code Online (Sandbox Code Playgroud)

当我执行以下脚本时,我得到了一个"未初始化复合参考"错误,这是非常合适的.

DECLARE
   item   tbusiness_inter_item_bag;
BEGIN
   item.system_event_cd := 'ABC';
END;
Run Code Online (Sandbox Code Playgroud)

这也引发了同样的错误:

item.item_id := 3;
Run Code Online (Sandbox Code Playgroud)

但如果我将我的对象类型更改为:

CREATE OR REPLACE TYPE tbusiness_inter_item_bag AS OBJECT (
   item_id              NUMBER(1),
   system_event_cd      VARCHAR2 (20),
   CONSTRUCTOR FUNCTION tbusiness_inter_item_bag RETURN SELF AS RESULT
);
Run Code Online (Sandbox Code Playgroud)

然后最后一个语句不再引发错误(我的"项目"仍然未初始化):

item.item_id := 3; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql user-defined-types

13
推荐指数
1
解决办法
3万
查看次数

Oracle Decode函数以不同的格式生成

SELECT DECODE (SYSDATE, SYSDATE + 1, NULL, SYSDATE)
  FROM DUAL;


SELECT DECODE (SYSDATE, SYSDATE + 1, TO_DATE (NULL), SYSDATE)
  FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

为什么我从上面的查询中得到不同格式的结果?

我正在使用Oracle数据库10g企业版10.2.0.4.0 - 64bi

oracle decode

3
推荐指数
1
解决办法
4845
查看次数

标签 统计

oracle ×2

decode ×1

plsql ×1

user-defined-types ×1