I am having trouble when writing some simple database update statements from a .NET application to an Oracle database using the OraOLEDB provider. When a statement tries to write a Boolean value into a NUMBER column, it returns the following exception:
System.Data.OleDb.OleDbException: Unspecified error: E_FAIL(0x80004005)
Switching the OraOLEDB provider for the Microsoft default Ole DB provider for Oracle databases (msdaora), the boolean values are successfully written to the NUMBER column. The same results occur if the NUMBER column is converted to a CHAR column: Using OraOLEDB results in the unspecified error while using msdaora updates the column successfully.
Is this a fault within OraOLEDB, or simply a limitation that has to be worked around? Has anyone else found this problem?