Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Importation avec Oracle SQL*Loader
Vous pouvez envisager Oracle SQL*Loader pour les grandes bases de données qui contiennent un nombre limité d'objets. Comme le processus d'exportation à partir d'une base de données source et de chargement dans une base de données cible est spécifique au schéma, l'exemple suivant crée les objets du schéma type, exporte à partir d'une source, puis charge les données dans une base de données cible.
La méthode la plus simple pour installer Oracle SQL*Loader est d'installer Oracle Instant Client. Pour télécharger le logiciel, accédez à https://www.oracle.com/database/technologies/instant-client.html
Pour importer des données avec Oracle SQL*Loader
-
Créez une table source type en utilisant l'instruction SQL suivante.
CREATE TABLE customer_0 TABLESPACE users AS (SELECT ROWNUM id, o.* FROM ALL_OBJECTS o, ALL_OBJECTS x WHERE ROWNUM <= 1000000);
-
Sur l'instance de base de données RDS for Oracle cible, créez une table de destination pour le chargement des données. La clause
WHERE 1=2
permet de copier la structure deALL_OBJECTS
sans copier aucune ligne.CREATE TABLE customer_1 TABLESPACE users AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED FROM ALL_OBJECTS WHERE 1=2);
-
Exportez les données de la base de données source vers un fichier texte. L'exemple suivant utilise SQL*Plus. Pour vos données, vous pourrez avoir besoin de générer un script qui exporte tous les objets dans la base de données.
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS' SET LINESIZE 800 HEADING OFF FEEDBACK OFF ARRAY 5000 PAGESIZE 0 SPOOL customer_0.out SET MARKUP HTML PREFORMAT ON SET COLSEP ',' SELECT id, owner, object_name, created FROM customer_0; SPOOL OFF
-
Créez un fichier de contrôle pour décrire les données. Vous devrez peut-être écrire un script pour réaliser cette étape.
cat << EOF > sqlldr_1.ctl load data infile customer_0.out into table customer_1 APPEND fields terminated by "," optionally enclosed by '"' ( id POSITION(01:10) INTEGER EXTERNAL, owner POSITION(12:41) CHAR, object_name POSITION(43:72) CHAR, created POSITION(74:92) date "YYYY/MM/DD HH24:MI:SS" )
Le cas échéant, copiez les fichiers générés par le code précédent vers une zone tampon comme une instance Amazon EC2.
-
Importez les données en utilisant SQL*Loader avec le nom d'utilisateur et le mot de passe appropriés pour la base de données cible.
sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000