Vous êtes sur la page 1sur 2

Créer un script

• Utilisez une variable de substitution avec esperluette (&) dans


une instruction SQL pour afficher une invite de saisie de valeur.
• Une telle variable est un paramètre substituable pour une
valeur.
INSERT INTO departments
(department_id, department_name, location_id)
VALUES (&department_id, '&department_name',&location);

Copyright © 2007, Oracle. Tous droits réservés.

Créer un script
Vous pouvez enregistrer des commandes comprenant des variables de substitution dans un
fichier, puis exécuter ce fichier. L'exemple de la diapositive ci-dessus enregistre des
informations concernant un département dans la table DEPARTMENTS.
Lorsque vous exécutez le fichier script, vous êtes invité à saisir une valeur pour chacune
des variables avec esperluette (&) d'interprétation. Après avoir saisi la valeur appropriée,
cliquez sur le bouton OK. Les valeurs que vous indiquez sont utilisées dans l'instruction.
Vous pouvez ainsi exécuter indéfiniment le même fichier script, en fournissant un jeu de
valeurs différent à chaque fois.

Oracle Database 11g : Les fondamentaux du langage SQL (I) 9 - 11


Copier des lignes depuis une autre table

• Ecrivez votre instruction INSERT avec une


sous-interrogation :
INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';

• N'utilisez pas la clause VALUES.


• Le nombre de colonnes de la clause INSERT doit
correspondre à celui de la sous-interrogation.
• Insérez toutes les lignes renvoyées par la sous-interrogation
dans la table sales_reps.

Copyright © 2007, Oracle. Tous droits réservés.

Copier des lignes depuis une autre table


Vous pouvez utiliser l'instruction INSERT pour ajouter à une table des lignes dont les
valeurs proviennent de tables existantes. Dans l'exemple de la diapositive ci-dessus, pour
que l'instruction INSERT INTO fonctionne, vous devez avoir créé la table sales_reps
à l'aide de l'instruction CREATE TABLE. Cette instruction sera décrite dans le chapitre
suivant, "Utiliser des instructions LDD pour créer et gérer des tables".
A la place de la clause VALUES, vous utilisez une sous-interrogation.
Syntaxe
INSERT INTO table [ column (, column) ] subquery;
Dans la syntaxe :
table Est le nom de la table.
column Est le nom de la colonne à remplir dans la table.
subquery Est la sous-interrogation qui renvoie des lignes vers la table.
Les colonnes indiquées dans la clause INSERT doivent correspondre en termes de nombre
et de type de données aux valeurs de la sous-interrogation. Le nombre de lignes ajoutées
dépend du nombre de lignes renvoyées par la sous-interrogation. Pour créer une copie des
lignes d'une table, utilisez SELECT * dans la sous-interrogation :
INSERT INTO copy_emp
SELECT *
FROM employees;

Oracle Database 11g : Les fondamentaux du langage SQL (I) 9 - 12

Vous aimerez peut-être aussi