FIELDTYPE は、source_field_reference が識別するフィールドのタイプを表す整数を戻します。これはフィールドのタイプであって、パラメーターで指定されるフィールドのデータ・タイプではありません。パラメーターの指定するエンティティーが存在しないものである場合、NULL が戻されます。
フィールド・タイプへの整数値のマッピングは、公開されていません。また、このマッピングはリリース間で異なる可能性があります。FIELDTYPE 関数の結果は、名前付きフィールド・タイプと比較してください。
このコンテキストで使用できる名前付きフィールド・タイプを、以下にリストします。
注: 最初の 4 つはドメインに依存していません。
XML.* タイプは、XML、XMLNS、JMSMap、および JMSStream ドメインに適用できます
(XML.Namespace 以外。これは XMLNS ドメイン固有です)。
こうしたタイプは、以下に示されているとおりに大文字を使用しなければなりません。
- Name
- Value
- NameValue
- MQRFH2.BitStream
- XML.AsisElementContent
- XML.Attribute
- XML.AttributeDef
- XML.AttributeDefDefaultType
- XML.AttributeDefType
- XML.AttributeDefValue
- XML.AttributeList
- XML.BitStream
- XML.CDataSection
- XML.Comment
- XML.Content
- XML.DocTypeComment
- XML.DocTypeDecl
- XML.DocTypePI
- XML.DocTypeWhiteSpace
- XML.Element
- XML.ElementDef
- XML.Encoding
- XML.EntityDecl
- XML.EntityDeclValue
- XML.EntityReferenceStart
- XML.EntityReferenceEnd
- XML.ExternalEntityDecl
- XML.ExternalParameterEntityDecl
- XML.ExtSubset
- XML.IntSubset
- XML.NamespaceDecl
- XML.NotationDecl
- XML.NotationReference
- XML.ParameterEntityDecl
- XML.ParserRoot
- XML.ProcessingInstruction
- XML.PublicId
- XML.RequestedDomain
- XML.Standalone
- XML.SystemId
- XML.UnparsedEntityDecl
- XML.Version
- XML.WhiteSpace
- XML.XmlDecl
- XMLNSC.Attribute
- XMLNSC.BitStream
- XMLNSC.CDataField
- XMLNSC.CDataValue
- XMLNSC.Comment
- XMLNSC.DocumentType
- XMLNSC.DoubleAttribute
- XMLNSC.DoubleEntityDefinition
- XMLNSC.EntityDefinition
- XMLNSC.EntityReference
- XMLNSC.Field
- XMLNSC.Folder
- XMLNSC.HybridField
- XMLNSC.HybridValue
- XMLNSC.PCDataField
- XMLNSC.PCDataValue
- XMLNSC.ProcessingInstruction
- XMLNSC.SingleAttribute
- XMLNSC.SingleEntityDefinition
- XMLNSC.Value
- XMLNSC.XmlDeclaration
この関数を使用して、メッセージ内にフィールドが存在するかどうかも判別できます。その場合、次の形式を使用します。
FIELDTYPE(SomeFieldReference) IS NULL
フィールドが存在する場合、フィールド・タイプ (例えば、string) を示す整数値が関数に戻されます。これが NULL と比較される場合、結果は FALSE となります。フィールドが存在しない場合、NULL が戻されるため、結果は TRUE となります。以下に例を示します。
IF FIELDTYPE(InputRoot.XML.Message1.Name)
IS NULL THEN
// Name field does not exist, take error
action....
... more ESQL ...
ELSE
// Name field does exist, continue....
... more ESQL ...
END IF