Using DataDirect Bulk Load on Sybase
- Last Updated: April 16, 2026
- 2 minute read
- ADO.NET
- Documentation
DataDirect Bulk Load offers a one-stop approach for all of your bulk load needs, with a simple, consistent way to do bulk load operations that works the same for all of the DataDirect Connect products that support this feature (see Using DataDirect Bulk Load for information on how to use bulk load). This section contains specific information for Sybase. Some additional database configuration is required when the destination table for a bulk load operation does not have an index defined.
If you are using a destination table that does not have an index defined, you can ask the database operator to execute the following commands:
use master
sp_dboption test, "SELECT INTO/bulkcopy/pllsort", true
This option is required to perform operations that do not keep a complete record of the transaction in the log. For more information, refer to the Sybase documentation.
Alternatively, you can define an index on the destination table.
Failure to properly configure the database results in errors such as the following:
You cannot run the non-logged version of bulk copy in this database. Please check with the DBO.
Bulk Copy Operations and Transactions
Sybase does not support a bulk insert within a transaction, and returns an error if a bulk copy operation is attempted in the scope of an existing transaction.
The Sybase server treats each batch of the bulk copy operation as a single transaction. If any rows in the batch are rejected, the entire transaction is rolled back.
Performance Considerations
Sybase defines two bulk copy modes, described in the following table. Sybase automatically selects the appropriate mode at run time. For more information, refer to your Sybase documentation.
Summary of Fast and Slow Bulk Copy Mode Characteristics
| Characteristic | Fast Bulk Copy Mode | Slow Bulk Copy Mode |
| Destination Table Characteristics | No indexes or triggers on destination table. | One or more indexes or triggers. |
| Database Configuration Required | The into/bulkcopy/pllsort dboption must be set to true. | None. |
| Logging Performed | Page allocations are logged, but row inserts are not. | Row inserts are logged. |
| Transaction Log Handling | You must dump the database before backing up (dumping) the transaction log. | The transaction log can become very large. After the bulk copy completes, back up your database with dump database, then truncate the log with dump transaction. |
Native to XML Schema Data Type Mappings
The following table shows how native SybaseDbTypes are mapped to XML schema data types for the bulk load configuration file.
Mapping SybaseDbType Enumerations to XML Schema Data Types
| SybaseDbType Enumerations | XML Schema Data Types |
| Bigint | Bigint |
| Binary | Binary |
| Bit | Bit |
| Char | Char |
| Date | Date |
| Datetime | Datetime |
| Decimal | Decimal |
| Float | Double_precision |
| Image | Longvarbinary |
| Int | Integer |
| Money | Decimal |
| NChar | Unicode_char |
| Numeric | Decimal |
| Nvarchar | Unicode_varchar |
| Real | Single_precision |
| Smalldatetime | DateTime |
| Smallint | Smallint |
| Smallmoney | Decimal |
| Sysname | Binary |
| Sbyte | Tinyint |
| Text | Longvarchar |
| Times | Time |
| Timestamp | DateTime |
| Tinyint | Unsigned_Tinyint |
| Unichar | Unicode_char |
| Unitext | Unicode_longvarchar |
| Univarchar | Unicode_varchar |
| Varbinary | Varbinary |
| Varchar | Varchar |
| Unsignedbigint | Unsigned_bigint |
| Unsignedint | Unsigned_integer |
| Unsignedsmallint | Unsigned_smallint |