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 に答える