Starting in ODP.NET version 10.2.0.3.3, support for light-weight transactions has been added. Here’s an excerpt from readme.txt:
This feature enables applications to use local transactions with System.Transactions where previous versions of ODP.NET supported only distributed transactions with System.Transactions. If the PromotableTransaction registry does not exist, the default value of “promotable” is used. If “promotable” is specified, first and subsequent connections opened in the same TransactionScope will enlist in the same distributed transaction. If “local” is specified, the first connection opened in the TransactionScope will use a local transaction. If any subsequent connections are opened within the same TransactionScope, an exception will be thrown. If there are connections opened already in the TransactionScope and an OracleConnection with “Promotable Transaction=local” is attempted to be opened within the same TransactionScope, an exception will also be thrown.
This is great for those of us who use ODP.NET with System.Transactions, especially if you use global temporary tables. I found out the hard way that global temporary tables are not supported with distributed transactions.
Version 10.2.0.3.3 is not yet available for download via Oracle.com. You have to request it through Metalink. Search for patch number 5916667. I have not tested this patch yet but I will soon.