基本的な Oracle データ型について
このトピックでは、Microsoft BizTalk Adapter for Oracle Database が基本的な Oracle データ型を表示する方法について説明します。
サポートされている Oracle データ型
Microsoft BizTalk Adapter for Oracle Database では、一部の Oracle データ型に対して安全な型指定がサポートされています。 安全な型指定が有効になっている場合、これらのデータ型は文字列として表されます。 安全な入力を構成するには 、EnableSafeTyping バインド プロパティを設定します。 既定では、安全な入力は無効になっています。 Oracle Database アダプターのバインド プロパティの詳細については、「Oracle Database アダプターのバインド プロパティの読み取り」を参照してください。
Note
データ型がユーザー定義型 (UDT) 内にある場合、安全な型指定はサポートされません。
次の表は、安全な型指定が無効 (EnableSafeTyping が false) で 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.Kind は DateTimeKind.Unspecified である必要があります タイム ゾーン情報が指定されている場合、アダプターは、フィールドを示すメッセージを含む XmlReaderParsingException 例外をスローします。 |
フロート** | xsd:float if prec <=7 xsd:double if prec > 7 and <=15 xsd:string if prec > 15 |
Float Double String |
- |
IntervalYM | xsd:string UDT 内にある場合は xsd:long |
String UDT 内の場合は Long |
値は Oracle ネイティブ形式で表す必要があります: Year-Month;たとえば、"1 - 2" (1 年 2 か月) などです。 |
IntervalDS | xsd:string UDT 内の場合は xsd:duration |
String UDT 内の場合の期間 |
値は Oracle ネイティブ形式で表す必要があります。Day HH:MI:SSxFF;たとえば、"5 15:30:12.99" |
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 |
TimeStamp 値には、タイム ゾーン情報 (UTC または UTC オフセット) を含めることはできません。 - xsd:dateTime 値に UTC オフセットまたは UTC オフセットを含めないようにする - DateTime.Kind は DateTimeKind.Unspecified である必要があります タイム ゾーン情報が指定されている場合、アダプターは、フィールドを示すメッセージを含む XmlReaderParsingException 例外をスローします。 |
TimeStampLTZ | xsd:string | String | TimeStampLTZ は UDT 内ではサポートされていません。 UDT の外部: 値は NLS_TIMESTAMP_TZ_FORMAT で表す必要があります。 |
TimeStampTZ | xsd:string UDT 内の場合は xsd:dateTime |
String UDT 内の場合は DateTime |
UDT の外部: 値は NLS_TIMESTAMP_TZ_FORMAT で表す必要があります。 |
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 |
ロケール (System.Globalization.CultureInfo.CurrentCulture) と一致するフォームで値を指定する必要があります。 たとえば、英語ロケールの場合、ピリオド文字 ('.') を使用して 10 進数を指定します。フランス語ロケールの場合は、コンマ文字 (',') を使用します。 |
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 Database アダプターの Oracle データ型の値の最大長は、Oracle データ型の ODP.NET でサポートされる値の最大長によってバインドされます。
- Oracle Database アダプターは、UDT 内の Oracle 数値データ型を .NET Decimal として内部的に処理します。 ただし、一般に (UDT の外部にある) Oracle Database アダプターは、Oracle の数値データ型を OracleDecimal として内部的に処理します。
安全な入力が有効
次の表は、 EnableSafeTyping バインド プロパティが true の場合に、安全な型指定の影響を受ける Oracle データ型がどのように変更されるかを示しています。
Oracle データ型 | XSD 型 | .NET の種類 | コメント |
---|---|---|---|
Date | xsd:string | String | 値は Oracle NLS_DATE_FORMATで表す必要があります。 |
TimeStamp | xsd:string | String | 値は Oracle NLS_TIMESTAMP_FORMATで表す必要があります。 |
重要
安全な型指定が有効になっている場合、DataSets および弱く型指定された REF CURSORS 内の Oracle 数値データ型は常に文字列として公開されます。
このテーブルに含まれていない Oracle データ型は、安全な入力が有効か無効かに関係なく、同じ方法で表示されます。
検証
Microsoft BizTalk Adapter for Oracle Database では、Oracle データ型に指定した値に対して明示的な検証は実行されません。 ただし、Oracle データ型と、安全な型指定が有効か無効かに応じて、暗黙的な検証が実行される場合があります。
メッセージで渡された XML と、アダプターによって内部的に使用される .NET 型の間で逆シリアル化する場合。
一部のデータ型の ODP.NET。