Re: How to do incremental updates (SQL*Loader?)?

From: Francisco Piragibe <piragibe_at_esquadro.com.br>
Date: 1996/07/05
Message-ID: <31DDC21B.7B88_at_esquadro.com.br>#1/1


Ofer Inbar wrote:
>
> I'm supporting a site that will be keeping an Oracle database
> synchronized with another database running on a VMS machine. The've
> got programs to extract the necessary information from the VMS db, and
> automatically create .sql, .ctl, and .dat files, which they ftp to the
> Unix box (an HP 9000 K210 running HP-UX 10.10 and Oracle 7.3.2) and
> load using SQL*Loader. This is working great for the initial transfer.
>
> The problem is keeping things up to date. These tables are large, and
> some of them take hours to load. They're going to want to do a
> nightly update, with only the changed data. They can have their
> extract programs output .ctl and .dat files containing only new data
> in the .dat file, in a format compatible with SQL*Loader and the .ctl
> file. However, this will be a mix of new records and existing records
> whose data has been altered. None of the SQL*Loader options (INSERT
> INTO TABLE, REPLACE, TRUNCATE, etc.) seem to work with this.
>
> Any suggestions?

Ofer

Unfortunately, you just can't do that. SQL*Loader is meant to be used in huge data loads. It's somewhat fast, but quite inflexible.

You might overcome this by making your incremental load a two step process: load the data to temporary tables and put them on the real ones through PL/SQL procedures. If this shows to be too slow for your needs, you'll have to build PRO*C or PRO*something programmes... Received on Fri Jul 05 1996 - 00:00:00 CEST

Original text of this message