Link Search Menu Expand Document

OracleBulkImportPseudoTableType


This enum defines the type of staging (pseudo) table created during bulk-import operations. It applies only to Oracle.

It is used by the following bulk operations.

Enum Values

NameDescription
AutoChooses between Physical and Memory based on row count (Physical at 5,000 rows or more). This is the default.
MemoryA Global Temporary Table, private to each session. Safe for concurrent/multi-connection workloads.
PhysicalAn ordinary heap table, shared by every session. Only safe for sequential (non-concurrent) workloads against the same target table.

Every value currently resolves to Physical at runtime. ODP.NET’s direct-path load — used internally by every bulk operation — cannot write into a Global Temporary Table, failing with ORA-39826. This is a temporary driver-level limitation; Auto and Memory are kept in the enum so existing code doesn’t need to change once a working strategy is implemented. See Bulk Operations (Oracle) for details.

Usability

Pass the value to the pseudoTableType argument of the target operation.

using (var connection = new OracleConnection(connectionString))
{
    var people = GetPeople(1000);
    var insertedRows = connection.BulkInsert(people,
        pseudoTableType: OracleBulkImportPseudoTableType.Physical);
}