ANYDATASET
タイプ
には、特定のタイプの説明およびそのタイプの一連のデータ・インスタンスが含まれています。ANYDATASET
は、必要に応じて、データベースに永続的に格納したり、自己記述型のデータ・セットと通信するインタフェース・パラメータとして使用できます。このデータ・セットは、すべて特定のタイプに属します。
この章では、次の項目について説明します。
ANYDATASET
は、値ごとに順番に構成する必要があります。
ANYDATASET
タイプの各データ・インスタンスについて、ADDINSTANCE
ファンクションを起動する必要があります。これにより、ANYDATASET
に新規データ・インスタンスが追加されます。次に、SET*
をコールして値をすべて設定できます。
構成およびアクセスのMODE
は、PIECEWISE
へのコールを実行して属性またはコレクション要素単位で変更できます。
ANYDATASETのタイプがTYPECODE_OBJECT
である場合、後続のSET*
コールを使用して個々の属性を設定します。アクセスについても同様です。
現行のデータ値のタイプがコレクション・タイプである場合は、後続のSET*
コールを使用して、個々のコレクション要素を設定します。アクセスについても同様です。このコールはANYDATA
タイプに対して定義されるANYDATA.PIECEWISE
コールに非常に似ています。
オブジェクト・タイプまたはコレクション・タイプのネストされた属性(最上位レベルを除く)の個別の構成またはアクセスはサポートされていません。
構成プロセスを終了するには、ENDCREATE
をコールする必要があります(アクセス・コールが実行される前)。
表269-1 ANYDATASETタイプのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
指定の |
|
|
|
現行のデータ値(適切なタイプのデータ値)を取得します。 |
|
|
|
|
|
現行のデータ値(適切なタイプのデータ値)。 |
|
|
|
1回ごとに現行のデータ値が属性となるように構成およびアクセスの |
|
現行のデータ値を設定します。 |
このプロシージャは、ANYDATASET
に新規データ・インスタンスを追加します。
このプロシージャは、指定のANYTYPE
の一連のデータ値を作成できるANYDATASET
を新規に作成します。
構文
STATIC PROCEDURE BeginCreate( typecode IN PLS_INTEGER, rtype IN OUT NOCOPY AnyType, aset OUT NOCOPY ANYDATASET);
これらのファンクションは、現行のデータ値(適切なタイプのデータ値)を取得します。
現行のデータ値のタイプは、アクセスするMODE
により異なります(つまり、PIECEWISE
コールを起動した方法により異なります)。PIECEWISE
がコールされていない場合は、インスタンスに完全にアクセスし、データ値のタイプはANYDATASET
のタイプと一致する必要があります。
PIECEWISE
がコールされている場合は、インスタンスに個別にアクセスします。データ値のタイプは、現在の位置での属性のタイプ(またはコレクション要素)に一致する必要があります。
構文
MEMBER FUNCTION GETBDOUBLE( self IN ANYDATASET, dbl OUT NOCOPY BINARY_DOUBLE) RETURN PLS_INTEGER; MEMBER FUNCTION GETBFLOAT( self IN ANYDATASET, fl OUT NOCOPY BINARY_FLOAT) RETURN PLS_INTEGER; MEMBER FUNCTION GETBFILE( self IN ANYDATASET, b OUT NOCOPY BFILE) RETURN PLS_INTEGER; MEMBER FUNCTION GETBLOB( self IN ANYDATASET, b OUT NOCOPY BLOB) RETURN PLS_INTEGER; MEMBER FUNCTION GETCHAR( self IN ANYDATASET, c OUT NOCOPY CHAR) RETURN PLS_INTEGER; MEMBER FUNCTION GETCLOB( self IN ANYDATASET, c OUT NOCOPY CLOB) RETURN PLS_INTEGER; MEMBER FUNCTION GETCOLLECTION( self IN ANYDATASET, col OUT NOCOPY "<collection_type>") RETURN PLS_INTEGER; MEMBER FUNCTION GETDATE( self IN ANYDATASET, dat OUT NOCOPY DATE) RETURN PLS_INTEGER; MEMBER FUNCTION GETINTERVALDS( self IN ANYDATASET, inv IN OUT NOCOPY INTERVAL DAY TO SECOND) RETURN PLS_INTEGER; MEMBER FUNCTION GETINTERVALYM( self IN ANYDATASET, inv IN OUT NOCOPY INTERVAL YEAR TO MONTH) RETURN PLS_INTEGER; MEMBER FUNCTION GETNCHAR( self IN ANYDATASET, nc OUT NOCOPY NCHAR) RETURN PLS_INTEGER; MEMBER FUNCTION GETNCLOB( self IN ANYDATASET, nc OUT NOCOPY NCLOB) RETURN PLS_INTEGER; MEMBER FUNCTION GETNUMBER( self IN ANYDATASET, num OUT NOCOPY NUMBER) RETURN PLS_INTEGER; MEMBER FUNCTION GETNVARCHAR2( self IN ANYDATASET, nc OUT NOCOPY NVARCHAR2) RETURN PLS_INTEGER; MEMBER FUNCTION GETOBJECT( self IN ANYDATASET, obj OUT NOCOPY "<object_type>") RETURN PLS_INTEGER; MEMBER FUNCTION GETRAW( self IN ANYDATASET, r OUT NOCOPY RAW) RETURN PLS_INTEGER; MEMBER FUNCTION GETREF( self IN ANYDATASET, rf OUT NOCOPY REF "<object_type>") RETURN PLS_INTEGER; MEMBER FUNCTION GETTIMESTAMP( self IN ANYDATASET, RETURN PLS_INTEGER; MEMBER FUNCTION GETTIMESTAMPLTZ( self IN ANYDATASET, ts OUT NOCOPY TIMESTAMP WITH LOCAL TIME ZONE) RETURN PLS_INTEGER; MEMBER FUNCTION GETTIMESTAMPTZ( self IN ANYDATASET, ts OUT NOCOPY TIMESTAMP WITH TIME ZONE) RETURN PLS_INTEGER, MEMBER FUNCTION GETUROWID( self IN ANYDATASET, rid OUT NOCOPY UROWID) RETURN PLS_INTEGER MEMBER FUNCTION GETVARCHAR( self IN ANYDATASET, c OUT NOCOPY VARCHAR) RETURN PLS_INTEGER; MEMBER FUNCTION GETVARCHAR2( self IN ANYDATASET, c OUT NOCOPY VARCHAR2) RETURN PLS_INTEGER;
このファンクションは、ANYDATASET
の次のインスタンスを取得します。ANYDATASET
のインスタンスへの順次アクセスのみが許可されます。このファンクションのコール後、GET*
ファンクションをANYDATASET
で起動して現在のインスタンスにアクセスできます。GET*
コールの前にPIECEWISE
をコールすると、個々の属性(またはコレクション要素)にアクセスできます。
ANYDATASET
が完全に作成される前にこのファンクションを起動すると、エラーが発生します。
このプロシージャは、ANYDATASET
の完全修飾名を取得します。
ANYDATASET
が組込みタイプに基づいている場合、このファンクションはNUMBER
および関連情報を戻します。
ユーザー定義タイプに基づいている場合、このファンクションはschema_name.type_name(SCOTT.FOOなど)を戻します。
一時的な匿名タイプに基づいている場合、このファンクションはNULL
を戻します。
このプロシージャは、1回ごとに現行のデータ値が属性となるように構成およびアクセスのMODE
を設定します(データ値がTYPECODE_OBJECT
の場合)。
構成MODE
、コレクション要素となるデータ値のアクセスを一度に設定します(データ値がコレクションTYPE
の場合)。このコールが実行されると、後続のSET*
およびGET*
へのコールにより順番に個別の属性またはコレクション要素が取得されます。
このプロシージャは、現行のデータ値を設定します。
現行のデータ値のタイプは、構成中のMODE
により異なります(つまり、PIECEWISE
コールを起動した方法により異なります)。PIECEWISE
がコールされていない場合は、現行のデータ・タイプがANYDATASET
のタイプである必要があります。PIECEWISE
がコールされている場合は、現在の位置での属性のタイプにします。
構文
MEMBER PROCEDURE SETBDOUBLE( self IN OUT NOCOPY ANYDATASET, dbl IN BINARY_DOUBLE, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETBFLOAT( self IN OUT NOCOPY ANYDATASET, fl IN BINARY_FLOAT, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETBFILE( self IN OUT NOCOPY ANYDATASET, b IN BFILE, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETBLOB( self IN OUT NOCOPY ANYDATASET, b IN BLOB, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETCHAR( self IN OUT NOCOPY ANYDATASET, c IN CHAR, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETCLOB( self IN OUT NOCOPY ANYDATASET, c IN CLOB, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETCOLLECTION( self IN OUT NOCOPY ANYDATASET, col IN "<collection_type>", last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETDATE( self IN OUT NOCOPY ANYDATASET, dat IN DATE, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETINTERVALDS( self IN OUT NOCOPY ANYDATASET, inv IN INTERVAL DAY TO SECOND, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETINTERVALYM( self IN OUT NOCOPY ANYDATASET, inv IN INTERVAL YEAR TO MONTH, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETNCHAR( self IN OUT NOCOPY ANYDATASET, nc IN NCHAR, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETNCLOB( self IN OUT NOCOPY ANYDATASET, nc IN NClob, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETNUMBER( self IN OUT NOCOPY ANYDATASET, num IN NUMBER, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETNVARCHAR2( self IN OUT NOCOPY ANYDATASET, nc IN NVarchar2, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETOBJECT( self IN OUT NOCOPY ANYDATASET, obj IN "<object_type>", last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETRAW( self IN OUT NOCOPY ANYDATASET, r IN RAW, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETREF( self IN OUT NOCOPY ANYDATASET, rf IN REF "<object_type>", last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETTIMESTAMP( self IN OUT NOCOPY ANYDATASET, ts IN TIMESTAMP, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETTIMESTAMPLTZ( self IN OUT NOCOPY ANYDATASET, ts IN TIMESTAMP WITH LOCAL TIME ZONE, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETTIMESTAMPTZ( self IN OUT NOCOPY ANYDATASET, ts IN TIMESTAMP WITH TIME ZONE, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETUROWID( self IN OUT NOCOPY ANYDATASET, rid IN UROWID, last_elem IN BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETVARCHAR( self IN OUT NOCOPY ANYDATASET, c IN VARCHAR, last_elem BOOLEAN DEFAULT FALSE); MEMBER PROCEDURE SETVARCHAR2( self IN OUT NOCOPY ANYDATASET, c IN VARCHAR2, last_elem BOOLEAN DEFAULT FALSE);