次の方法で共有


基本的な Oracle データ型

このトピックでは、Microsoft BizTalk Adapter for Oracle E-Business Suite が基本的な Oracle データ型を表示する方法について説明します。

サポートされている Oracle データ型

Oracle E-Business アダプターでは、一部の Oracle データ型に対して安全な型指定がサポートされています。 安全な型指定が有効になっている場合、これらのデータ型は文字列として表されます。 安全な型指定を構成するには、 EnableSafeTyping バインド プロパティを有効にします (既定では無効)。 Oracle E-Business アダプターのバインド プロパティの詳細については、「 BizTalk Adapter for Oracle E-Business Suite バインディング プロパティの読み取り」を参照してください。

Note

データ型がユーザー定義型 (UDT) 内にある場合、安全な型指定はサポートされません。

次の表は、安全な型指定が無効 (EnableSafeTypingfalse) で Oracle データ型がどのように表示されるかを示しています。 EnableSafeTyping バインド プロパティの影響を受ける Oracle データ型は、アスタリスク (*) でマークされます。

Oracle データ型 XSD 型 .NET の種類 説明
BFile input: xsd:string

output: xsd:base64Binary
String

Byte[]
BFile データ型は、複合型 (RecordType、TableType、UDT、VArray など) 内ではサポートされていません。
BLOB xsd:base64Binary Byte[] -
Char xsd:string String -
Clob xsd:string String -
日付*

(UDT 内にある場合は、安全な入力は行われません)
xsd:dateTime DateTime 日付値には、タイム ゾーン情報 (UTC または UTC オフセット) を含めることはできません。

- xsd:dateTime 値に UTC オフセットまたは UTC オフセットを含めてはいけません
- DateTime.KindDateTimeKind.Unspecified である必要があります

タイム ゾーン情報が指定されている場合、アダプターは、フィールドを示すメッセージを含む XmlReaderParsingException 例外をスローします。 メモ: Oracle E-Business アダプターは、次の理由から、Oracle 日付データ型を xsd:date ではなく xsd:dateTime として公開します。
  • Oracle 日付データ型には、時間値を含めることもできます。
  • xsd:date に相当する .NET はありません。
フロート** xsd:float if prec <=7

xsd:double if prec > 7 and <=15

xsd:string if prec > 15
Float

Double

String
MlsSettings バインド プロパティの NumericCharacters バインド プロパティで、小数点文字とグループ区切り記号に指定された形式と一致する値を指定する必要があります。 NumericCharacters バインディング プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。
IntervalDS xsd:string

UDT 内の場合は xsd:duration
String

UDT 内の場合の期間
アダプターは、OracleIntervalDS.ToString メソッドを使用して、IntervalDS データを文字列として返します。

値は Oracle ネイティブ形式で表す必要があります:Day HH:MI:SSxFF (たとえば、"5 15:30:12.99")。
IntervalYM xsd:string

UDT 内にある場合は xsd:long
String

UDT 内の場合は Long
アダプターは、OracleIntervalYM.ToString メソッドを使用して、IntervalYM データを文字列として返します。

値は Oracle ネイティブ形式で表す必要があります: Year-Month;たとえば、"1- 2" (1 年 2 か月) などです。
Long xsd:string String Oracle データベース 9i リリース以降、LONG データ型は非推奨となりました。 Oracle では、代わりにラージ オブジェクト (LOB) データ型を使用することをお勧めします。 そのため、Oracle データベース アダプターを使用して Oracle データベースに対して操作を実行する場合は、LONG データ型ではなく LOB データ型に対して動作する Oracle データベース成果物を使用することをお勧めします。
LongRaw xsd:base64Binary Byte[] -
NChar xsd:string String -
NClob xsd:string String
数** xsd:decimal if prec <=28

xsd:string if prec > 28
Decimal
String
-
NVarchar2 xsd:string String -
Raw xsd:base64Binary Byte[]
Rowid xsd:string String -
タイムスタンプ*

(UDT 内にある場合は、安全な入力は行われません)
xsd:dateTime (prec <= 7 の場合)

xsd:string if prec > 7
DateTime

String
文字列 (7 より前 > ) として公開される場合、値は Oracle NLS_TIMESTAMP_FORMATで表す必要があります。 TimeStamp データ型の文字列形式は、MlsSettings バインド プロパティの TimeStampFormat バインド プロパティで指定できます。 TimeStampFormat バインド プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。

TimeStamp 値には、タイム ゾーン情報 (UTC または UTC オフセット) を含めることはできません。

- xsd:dateTime 値に UTC オフセットまたは UTC オフセットを含めないようにする
- DateTime.KindDateTimeKind.Unspecified である必要があります

タイム ゾーン情報が指定されている場合、アダプターは、フィールドを示すメッセージを含む XmlReaderParsingException 例外をスローします。
TimeStampLTZ xsd:string String TimeStampLTZ は UDT 内ではサポートされていません。

UDT の外部: 値は Oracle NLS_TIMESTAMP_TZ_FORMATで表す必要があります。 TimeStampTZ データ型の文字列形式は、MlsSettings バインド プロパティの TimeStampTZFormat バインド プロパティで指定できます。 TimeStampTZFormat バインド プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。
TimeStampTZ xsd:string

UDT 内の場合は xsd:dateTime
String

UDT 内の場合は DateTime
UDT の外部: 値は Oracle NLS_TIMESTAMP_TZ_FORMATで表す必要があります。 TimeStampTZ データ型の文字列形式は、MlsSettings バインド プロパティの TimeStampTZFormat バインド プロパティで指定できます。 TimeStampTZFormat バインド プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。
10 進** xsd:decimal (prec <=28 の場合)

xsd:string if prec > 28
Decimal

String
-
Varchar2 xsd:string String -
Binary Float** xsd:float (prec <=7 の場合)

xsd:string if prec > 7
Float

String
MlsSettings バインド プロパティの NumericCharacters バインド プロパティで、小数点文字とグループ区切り記号に指定された形式と一致する値を指定する必要があります。 NumericCharacters バインディング プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。
Binary Double** xsd:double if prec <=15

xsd:string if prec > 15
Double

String
-
Binary Integer** xsd:integer Int32
Boolean xsd:boolean Null 許容ブール値
XMLTYPE xsd:string String 最上位レベルのプロシージャ パラメーターでサポートされます。

BizTalk でアプリケーションを開発するとき、および WCF チャネル モデルを使用する場合は、予約 XML 文字 ('<'、'>' など) をエンティティ表現 (<、 >) に置き換える必要があります。 これは、WCF サービス モデルの場合は必要ありません。

*これらの Oracle データ型が表示される方法は、 EnableSafeTyping バインディング プロパティの影響を受けます。

**DataSets および弱く型指定された REF CURSORS 内でこれらの Oracle 数値データ型が表示される方法は、 EnableSafeTyping バインディング プロパティの影響を受けます。

重要

  • Oracle E-Business アダプターの Oracle データ型の値の最大長は、Oracle データ型の ODP.NET でサポートされる値の最大長によってバインドされます。
    • Oracle E-Business アダプターは、UDT 内の Oracle 数値データ型を .NET Decimal として内部的に処理します。 ただし、一般に (UDT の外部にある) Oracle E-Business アダプターは、Oracle の数値データ型を OracleDecimal として内部的に処理します。

安全な入力が有効

次の表は、 EnableSafeTyping バインド プロパティが true の場合に、安全な型指定の影響を受ける Oracle データ型がどのように変更されるかを示しています。

Note

このテーブルに含まれていない Oracle データ型は、安全な入力が有効か無効かに関係なく、同じ方法で表示されます。

Oracle データ型 XSD 型 .NET の種類 コメント
Date xsd:string String 値は Oracle NLS_DATE_FORMATで表す必要があります。 DateFormat バインド プロパティの [MlsSettings] バインド プロパティで、Date データ型の形式を指定できます。 DateFormat バインド プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。
TimeStamp xsd:string String 値は Oracle NLS_TIMESTAMP_FORMATで表す必要があります。 TimeStamp データ型の文字列形式は、MlsSettings バインド プロパティの TimeStampFormat バインド プロパティで指定できます。 TimeStampFormat バインド プロパティに値が指定されていない場合、アダプターは、アダプターがインストールされているのと同じコンピューター上の ODP.NET クライアントの MLS 設定を使用します。

重要

安全な型指定が有効になっている場合、DataSets および弱く型指定された REF CURSORS 内の Oracle 数値データ型は常に文字列として公開されます。

検証

Oracle E-Business アダプターは、Oracle データ型に指定した値に対して明示的な検証を実行しません。 ただし、Oracle データ型と、安全な型指定が有効か無効かに応じて、暗黙的な検証が実行される場合があります。

  • メッセージで渡された XML と、アダプターによって内部的に使用される .NET 型の間で逆シリアル化する場合。

  • 一部のデータ型の ODP.NET。

参照

BizTalk Adapter for Oracle E-Business Suite 用のメッセージとメッセージ スキーマ