我在PL/SQL包中声明了以下类型:
TYPE t_simple_object IS RECORD (
wert NUMBER,
gs NUMBER,
vl NUMBER);
TYPE t_obj_table IS TABLE OF t_simple_object
INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)
然后我声明一个变量:
obj t_obj_table;
Run Code Online (Sandbox Code Playgroud)
但是,当我想使用变量时,我无法初始化或扩展它:
obj := t_obj_table ();
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
PLS-00222: no function with name 'T_OBJ_TABLE' exists in this scope
Run Code Online (Sandbox Code Playgroud)
如果我没有初始化它,我不能扩展它来添加一些日期
obj.EXTEND();
Run Code Online (Sandbox Code Playgroud)
给出另一个错误:
PLS-00306: wrong number or types of arguments in call to 'EXTEND'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Pau*_*ulJ 22
你没有扩展一个由"某事"索引的表,你可以使用它......
DECLARE
TYPE t_simple_object IS RECORD
( wert NUMBER
, gs NUMBER
, vl NUMBER
);
TYPE t_obj_table IS TABLE OF t_simple_object
INDEX BY BINARY_INTEGER;
my_rec t_simple_object;
obj t_obj_table;
BEGIN
my_rec.wert := 1;
my_rec.gs := 1;
my_rec.vl := 1;
obj(1) := my_rec;
END;
/
Run Code Online (Sandbox Code Playgroud)
要使用EXTEND语法,这个例子应该这样做......
DECLARE
TYPE t_simple_object IS RECORD
( wert NUMBER
, gs NUMBER
, vl NUMBER
);
TYPE t_obj_table IS TABLE OF t_simple_object;
my_rec t_simple_object;
obj t_obj_table := t_obj_table();
BEGIN
obj.EXTEND;
my_rec.wert := 1;
my_rec.gs := 1;
my_rec.vl := 1;
obj(1) := my_rec;
END;
/
Run Code Online (Sandbox Code Playgroud)
你不能扩展一个assosiative数组.只需为其指定值即可
declare
TYPE t_simple_object IS RECORD (
wert NUMBER,
gs NUMBER,
vl NUMBER);
TYPE t_obj_table IS TABLE OF t_simple_object INDEX BY BINARY_INTEGER;
simple_object t_simple_object;
begin
simple_object.wert := 1;
simple_object.gs := 2;
simple_object.vl := 3;
obj(1) := simple_object;
end;
/
Run Code Online (Sandbox Code Playgroud)
如果您不想使用关联数组(也就是索引表),则省略"INDEX BY BINARY_INTEGER"子句.您的代码然后工作正常:
declare
TYPE t_simple_object IS RECORD (
wert NUMBER,
gs NUMBER,
vl NUMBER);
TYPE t_obj_table IS TABLE OF t_simple_object;
obj t_obj_table;
begin
obj := t_obj_table ();
obj.EXTEND();
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52464 次 |
| 最近记录: |