Maison >base de données >tutoriel mysql >Comment puis-je insérer efficacement plusieurs lignes dans une base de données Oracle ?

Comment puis-je insérer efficacement plusieurs lignes dans une base de données Oracle ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-22 18:21:13748parcourir

How Can I Efficiently Insert Multiple Rows into an Oracle Database?

Méthode efficace d'insertion par lots de données dans la base de données Oracle

Il existe de nombreuses façons d'insérer plusieurs lignes de données dans la base de données Oracle. La méthode d'insertion par lots couramment utilisée dans MySQL n'est pas directement prise en charge dans Oracle.

Utilisez l'instruction INSERT ALL

Dans Oracle, vous pouvez utiliser l'instruction INSERT ALL pour l'insertion par lots. Cette instruction contient plusieurs clauses INTO, chaque clause représente une ligne de données à insérer. L'instruction se termine par SELECT 1 FROM DUAL comme signe de la fin de l'insertion.

<code class="language-sql">INSERT ALL
   INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
   INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
   INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
   .
   .
   .
SELECT 1 FROM DUAL;</code>

Syntaxe simplifiée Oracle 23c

Oracle 23c introduit une syntaxe d'insertion groupée simplifiée qui élimine le besoin de l'instruction INSERT ALL. Plusieurs lignes de données peuvent être insérées à l'aide d'une liste séparée par des virgules comme celle-ci :

<code class="language-sql">INSERT INTO t(col1, col2, col3) VALUES
('val1_1', 'val1_2', 'val1_3'),
('val2_1', 'val2_2', 'val2_3'),
('val3_1', 'val3_2', 'val3_3');</code>

Considérations relatives aux performances

Pour de grandes quantités de données, des problèmes de performances doivent être pris en compte. La nouvelle syntaxe INSERT dans Oracle 23c est beaucoup plus rapide que INSERT ALL et a des performances comparables à celles de la méthode UNION ALL. Cependant, l’insertion de plus de 1 000 lignes de données à la fois entraîne une augmentation exponentielle du temps d’analyse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn