295 ANYTYPEタイプ
ANYTYPE
タイプ
には、名前が付いているかどうかにかかわらず、オブジェクト・タイプやコレクション・タイプなどの永続的なSQLタイプの説明を含めることができます。一時的なタイプの説明を新しく構成する場合にも使用できます。
CREATE TYPE
文を使用して作成できるのは、新規の永続タイプのみです。ANYTYPE
インタフェースを使用して作成できるのは、新規の一時タイプのみです。
Oracle Database 19c以降では、GETANYTYPEFROMPERSISTENT
ファンクションがGETPERISTENT
静的ファンクションに置き換わりました。
この章では、次の項目について説明します。
295.1 ANYTYPEサブプログラムの要約
この表は、ANYTYPE
のサブプログラムをアルファベット順に示し、簡単に説明しています。
表295-1 ANYTYPEのサブプログラム
サブプログラム | 説明 |
---|---|
一時的なタイプの説明の作成に使用できる新規の |
|
|
|
|
|
一時的な |
|
|
|
タイプの属性のタイプ情報を取得します( |
|
このスタンドアロン・ファンクションは、古い静的ファンクション |
295.1.1 BEGINCREATE静的プロシージャ
このプロシージャは、一時的なタイプの説明の作成に使用できる新規のANYTYPE
のインスタンスを作成します。
構文
STATIC PROCEDURE BEGINCREATE( typecode IN PLS_INTEGER, atype OUT NOCOPY ANYTYPE);
パラメータ
表295-2 BEGINCREATEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザー定義タイプのtypecode:
組込みタイプのtypecode:
|
|
一時的なタイプの |
295.1.2 SETINFOメンバー・プロシージャ
このプロシージャは、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);
パラメータ
表295-3 SETINFOプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成中の一時的な |
|
オプション。typecodeが 精度およびスケールを指定します。指定しない場合は無視されます。 |
|
オプション。typecodeが 精度およびスケールを指定します。指定しない場合は無視されます。 |
|
オプション。typecodeが |
|
typecodeが |
|
typecodeが |
|
オプション。コレクション要素のtypecodeが、 |
コレクション・タイプに必要なパラメータは次のとおりです。
表295-4 SETINFOプロシージャのパラメータ - コレクション・タイプ
パラメータ | 説明 |
---|---|
|
|
|
selfがネストした表( |
例外
-
DBMS_TYPES.INVALID_PARAMETER
: 無効なパラメータ(typecode、typeinfo)。 -
DBMS_TYPES.INCORRECT_USAGE
: 不適切な使用(ENDCREATE
および同様のアクションをコールした後はコールできません)。
使用上のノート
永続的なユーザー定義タイプを表すANYTYPE
にこのファンクションをコールするとエラーが発生します。
295.1.3 ADDATTRメンバー・プロシージャ
このプロシージャは、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);
パラメータ
表295-5 ADDATTRプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成中の一時的な |
|
オプション。属性名。 |
|
属性のtypecode。組込みまたはユーザー定義のtypecode( |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。typecodeが |
|
オプション。ユーザー定義タイプに対応する |
例外
-
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(typecode、typeinfo)。 -
DBMS_TYPES.INCORRECT_USAGE
: 不適切な使用(EndCreate
および同様のアクションをコールした後はコールできません)。
295.1.4 ENDCREATEメンバー・プロシージャ
このプロシージャは、一時的なANYTYPE
の作成を終了します。このコール以降は、その他の作成ファンクションをコールすることはできません。
構文
MEMBER PROCEDURE ENDCREATE( self IN OUT NOCOPY ANYTYPE);
パラメータ
表295-6 ENDCREATEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成中の一時的な |
295.1.5 GETINFOメンバー・ファンクション
このファンクションは、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, numelems OUT PLS_INTEGER) RETURN PLS_INTEGER;
パラメータ
表295-7 GETINFOファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
typecodeがNUMBERを表す場合。精度およびスケールを指定します。指定しない場合は無視されます。 |
|
typecodeがNUMBERを表す場合。精度およびスケールを指定します。指定しない場合は無視されます。 |
|
typecodeが |
|
typecodeが |
|
typecodeが |
|
タイプのスキーマ(永続的な場合)。 |
|
タイプのタイプ名。 |
|
タイプのバージョン。 |
|
selfが |
戻り値
selfのtypecode。
例外
-
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(位置が境界を越えているか、ANYTYPE
が適切に構成されていない)。
295.1.6 GETATTRELEMINFOメンバー・ファンクション
このファンクションは、タイプの属性のタイプ情報を取得します(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;
パラメータ
表295-8 GETATTRELEMINFOファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
selfが |
|
属性またはコレクション要素のtypecodeが |
|
属性またはコレクション要素のtypecodeが |
|
typecodeが |
|
typecodeが |
|
属性またはコレクション要素のtypecodeがユーザー定義タイプを表す場合、それに対応する |
|
属性名(オブジェクト・タイプの属性の場合。そうでない場合は |
戻り値
属性またはコレクション要素のtypecode。
例外
DBMS_TYPES.INVALID_PARAMETERS
: 無効なパラメータ(位置が境界を越えているか、ANYTYPEが適切に構成されていない)。
295.1.7 GETANYTYPEFROMPERSISTENTファンクション
このスタンドアロン・ファンクションは、CREATE
TYPE
SQL文を使用して以前に作成された永続的なタイプに対応するANYTYPE
を戻します。Oracle Database 19c以降では、GETANYTYPEFROMPERSISTENT
ファンクションがGETPERISTENT
静的ファンクションに置き換わりました。
構文
GETANYTYPEFROMPERSISTENT( schema_name IN VARCHAR2, type_name IN VARCHAR2) RETURN ANYTYPE;
パラメータ
表295-9 GETANYTYPEFROMPERSISTENTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
タイプのスキーマ名 |
|
タイプ名。 |
戻り値
CREATE
TYPE
SQL文を使用して以前に作成された永続的なタイプに対応するANYTYPE
。