我创建了一个SQL对象:
create type foo_type as object (
bar integer(2),
bar2 varchar(200),
member function get return integer
)
我实现了我的类型的身体:
CREATE TYPE BODY foo_type as
member function get return integer is
begin
return bar;
END;
END;
然后我创建了一个这种类型的表:
CREATE TABLE test_table(
foo1 foo_type
)
我插了一行:
INSERT INTO test_table (foo1) VALUES (foo_type(1, 'a'))
我希望这可以这样调用:
SELECT foo1.get() FROM test_table
但它不起作用。
答案 0 :(得分:5)
在引用类型方法/属性时必须使用别名。
例如将表别名为t:
SQL> INSERT INTO test_table (foo1) VALUES (foo_type(1, 'a'));
1 row created.
SQL> select t.foo1.get() from test_table t;
T.FOO1.GET()
------------
1