5

我创建了一个 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

但它不起作用。

4

1 回答 1

7

引用类型方法/属性时必须使用别名。

例如,将表别名为 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
于 2013-02-19T10:12:03.703 回答