0

SQL で、オブジェクトから値を取得する単純なメソッドを作成するにはどうすればよいですか?

コードは次のとおりです。

create type CurrentUser_objtyp as Object (
CurrUserName varchar2(20),
CurrUserPassword varchar2(20),
CurrUserType varchar2(15)
)
/

メソッドから CurrUserName の値を取得するにはどうすればよいですか?

4

1 に答える 1

1

Oracle SQL 型では public 属性しか許可されないため、getter および setter メソッドを作成しても意味がありません。

ただし、一般的な原則は、メンバー メソッドを作成することです。

create type CurrentUser_objtyp as Object (
CurrUserName varchar2(20),
CurrUserPassword varchar2(20),
CurrUserType varchar2(15),
member function getname return varchar2
)
/

基本的に PL/SQL である実装の本体を作成する必要があります。

create type body CurrentUser_objtyp as 

    member function getname return varchar2
    is
    begin
         return self.CurrUserName;
    end;
end;
/

「上記のコードでメンバー関数を呼び出すにはどうすればよいですか?」

メンバー関数 (またはプロシージャ) を呼び出すには、まずオブジェクトをインスタンス化する必要があります。オブジェクトを使用するにはさまざまな方法がありますが、ここでも最も簡単な方法を示します。

declare
    currUser CurrentUser_objtyp := new CurrentUser_objtyp('MR KNOX', 'PASSWORD1', 'MANAGER');
begin
    dbms_output.put_line('user name is '||currUser.getname);
end;
/

Oracle は、オブジェクト リレーショナル コンストラクトのマニュアル全体を作成しました。詳細については、それをお読みください

于 2013-05-20T05:49:43.653 に答える