Michael Peppler
Sybase Consulting
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
Sybase on Linux FAQ
Sybperl FAQ
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at peppler dot org>
Subject: Bulk insert/load API access from DBI
Date: Jul 6 2004 9:37AM

[ also posted to dbi-dev for comments there ]

I've been asked to investigate the feasibility of adding access to
Sybase's bulk-load API in DBD::Sybase. This is an API that allows you to
load table rows in a minimally logged manner, and is of course much
faster than normal INSERT statements.

I have this API available in Sybase::CTlib, and there are a number of users
who mix DBI and Sybase::CTlib to get the necessary functionality.

I can implement this as a bunch of private DBD::Sybase calls,
but after thinking about this a little I thought that it might be
possible to integrate this to the prepare()/execute()/commit() sequence.

Maybe something like:

$sth = $dbh->prepare("BULK INSERT  -- attributes to be
while(<>) {
   @row = split('\|');   # or whatever...

Obviously the driver (or DBI) would have to recognize the BULK INSERT
statement and switch to the bulk load API. That's similar to what I do
now with the "EXEC ..." statement that generates RPC calls instead of
SQL language commands to the server.

Does this make sense?


Michael Peppler                              Data Migrations, Inc.             
Sybase T-SQL/OpenClient/OpenServer/C/Perl developer available for short
or long term contract positions -