%OBJECT (SQL)
構文
%OBJECT(stream)
概要
%OBJECT を使用してストリーム・オブジェクトが開かれ、ストリーム・フィールドの oref (オブジェクト参照) が返されます。
ストリーム・フィールドでの SELECT は、ストリーム・フィールドの整形式 OID (オブジェクト ID) 値を返します。ストリーム・フィールドでの SELECT %OBJECT は、ストリーム・フィールドの oref (オブジェクト参照) を返します。
stream がストリーム・フィールドでない場合、%OBJECT は SQLCODE -128 エラーを発行します。
%OBJECT は、以下の関数に対する引数として使用できます。
-
CHARACTER_LENGTH(%OBJECT(streamfield))、CHAR_LENGTH(%OBJECT(streamfield))、または DATALENGTH(%OBJECT(streamfield))
-
SUBSTRING(%OBJECT(streamfield),start,length)
ストリーム・フィールドで SELECT を発行し、oid から oref を生成する $Stream.Object.%Open()Opens in a new tab クラス・メソッドを呼び出してこのストリーム oid を開くことでも、同じ操作を実行することができます。
SET oref = ##class(%Stream.Object).%Open(oid)
oref の詳細は、“OREF の基本” を参照してください。oid の詳細は、上記と同じドキュメントの “保存したオブジェクトの識別子 : ID および OID” を参照してください。
引数
stream
ストリーム・フィールドの名前である式。
例
以下の例は、ストリーム・フィールドに対する SELECT %OBJECT が oref を返す方法を示しています。Notes と Picture はどちらもストリーム・フィールドです。
SELECT TOP 3 Title,Notes,%OBJECT(Picture) AS Photo FROM Sample.Employee