ANYTYPE
タイプには、名前がついているかどうかにかかわらず、オブジェクト・タイプおよびコレクション・タイプなどの永続的なSQLタイプの説明を含めることができます。一時的なタイプの説明を新しく構成する場合にも使用できます。
CREATE TYPE
文を使用して作成できるのは、新規の永続タイプのみです。ANYTYPE
インタフェースを使用して作成できるのは、新規の一時タイプのみです。
この章では、次の項目について説明します。
表223-1 ANYTYPEタイプのサブプログラム
サブプログラム | 説明 |
---|---|
|
一時的なタイプの説明の作成に使用できる新規の |
|
|
|
|
|
一時的な |
|
|
|
|
|
タイプの属性のタイプ情報を取得します( |
このプロシージャは、一時的なタイプの説明の作成に使用できる新規のANYTYPE
のインスタンスを作成します。
構文
STATIC PROCEDURE BEGINCREATE( typecode IN PLS_INTEGER, atype OUT NOCOPY ANYTYPE);
パラメータ
表223-2 BEGINCREATEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザー定義型のtypecode:
組込みタイプのtypecode:
|
|
一時的なタイプの |
このプロシージャは、COLLECTION
または組込みタイプの構成に必要な追加情報を設定します。
構文
MEMBER PROCEDURE SETINFO( self IN OUT NOCOPY ANYTYPE, prec IN PLS_INTEGER, scale IN PLS_INTEGER, len IN PLS_INTEGER, csid IN PLS_INTEGER, csfrm IN PLS_INTEGER, atype IN ANYTYPE DEFAULT NULL, elem_tc IN PLS_INTEGER DEFAULT NULL, elem_count IN PLS_INTEGER DEFAULT 0);
パラメータ
表223-3 SETINFOプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成中の一時的な |
|
オプション。typecodeが 精度およびスケールを指定します。指定しない場合は無視されます。 |
|
オプション。typecodeが 精度およびスケールを指定します。指定しない場合は無視されます。 |
|
オプション。typecodeが |
|
typecodeが |
|
typecodeが |
|
オプション。 コレクション要素のtypecodeが |
コレクション・タイプに必要なパラメータは次のとおりです。
表223-4 SETINFOプロシージャのパラメータ: コレクション・タイプ
パラメータ | 説明 |
---|---|
|
|
|
selfがネストした表( |
例外
DBMS_TYPES.INVALID_PARAMETER
: 無効なパラメータ(typecode、typeinfo)。
DBMS_TYPES.INCORRECT_USAGE
: 不適切な使用(ENDCREATE
および同様のアクションをコールした後はコールできません)。
使用上の注意
永続的なユーザー定義型を表すANYTYPE
にこのファンクションをコールするとエラーが発生します。
このプロシージャは、DBMS_TYPES
.TYPECODE_OBJECT
のtypecodeであるANYTYPE
に属性を追加します。
構文
MEMBER PROCEDURE ADDATTR( self IN OUT NOCOPY ANYTYPE, aname IN VARCHAR2, typecode IN PLS_INTEGER, prec IN PLS_INTEGER, scale IN PLS_INTEGER, len IN PLS_INTEGER, csid IN PLS_INTEGER, csfrm IN PLS_INTEGER, attr_type IN ANYTYPE DEFAULT NULL);
パラメータ
表223-5 ADDATTRのパラメータ
パラメータ | 説明 |
---|---|
|
構成中の一時的な |
|
オプション。属性名。 |
|
属性のtypecode。 組込みまたはユーザー定義のtypecode( |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。ユーザー定義型に対応する |
例外
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(typecode、typeinfo)。
DBMS_TYPES.INCORRECT_USAGE
: 不適切な使用(EndCreate
および同様のアクションをコールした後はコールできません)。
このプロシージャは、一時的なANYTYPE
の作成を終了します。このコール以降は、その他の作成ファンクションをコールすることはできません。
構文
MEMBER PROCEDURE ENDCREATE( self IN OUT NOCOPY ANYTYPE);
パラメータ
このプロシージャは、CREATE
TYPE
SQL文を使用して以前に作成された、永続的なタイプに対応するANYTYPE
を戻します。
構文
STATIC FUNCTION GETPERSISTENT( schema_name IN VARCHAR2, type_name IN VARCHAR2, version IN VARCHAR2 DEFAULT NULL) RETURN ANYTYPE;
パラメータ
戻り値
CREATE
TYPE
SQL文を使用して以前に作成された永続的なタイプに対応するANYTYPE
。
このファンクションは、ANYTYPE
のタイプ情報を取得します。
構文
MEMBER FUNCTION GETINFO ( self IN ANYTYPE, prec OUT PLS_INTEGER, scale OUT PLS_INTEGER, len OUT PLS_INTEGER, csid OUT PLS_INTEGER, csfrm OUT PLS_INTEGER, schema_name OUT VARCHAR2, type_name OUT VARCHAR2, version OUT varchar2, count OUT PLS_INTEGER) RETURN PLS_INTEGER;
パラメータ
表223-8 GETINFOファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
typecodeがNUMBERを表す場合。精度およびスケールを指定します。指定しない場合は無視されます。 |
|
typecodeがNUMBERを表す場合。精度およびスケールを指定します。指定しない場合は無視されます。 |
|
typecodeが |
|
typecodeが |
|
typecodeが |
|
タイプのスキーマ(永続的な場合)。 |
|
タイプのタイプ名。 |
|
タイプのバージョン。 |
|
selfが |
戻り値
selfのtypecode。
例外
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(位置が境界を越えているか、ANYTYPE
が適切に構成されていない)。
このファンクションは、タイプの属性のタイプ情報を取得します(TYPECODE_OBJECT
である場合)。selfパラメータがコレクション・タイプのパラメータである場合、コレクションの要素タイプのタイプ情報を取得します。
構文
MEMBER FUNCTION GETATTRELEMINFO ( self IN ANYTYPE, pos IN PLS_INTEGER, prec OUT PLS_INTEGER, scale OUT PLS_INTEGER, len OUT PLS_INTEGER, csid OUT PLS_INTEGER, csfrm OUT PLS_INTEGER, attr_elt_type OUT ANYTYPE aname OUT VARRCHAR2) RETURN PLS_INTEGER;
パラメータ
表223-9 GETATTRELEMINFOファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
selfが |
|
属性またはコレクション要素のtypecodeが |
|
属性またはコレクション要素のtypecodeが |
|
typecodeが |
|
typecodeが |
|
属性またはコレクション要素のtypecodeがユーザー定義型を表す場合、それに対応する |
|
属性名(オブジェクト・タイプの属性の場合。そうでない場合は |
戻り値
属性またはコレクション要素のtypecode。
例外
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(位置が境界を越えているか、ANYTYPEが適切に構成されていない)。