Table des matières
1 Créer une table temporaire
1. ON COMMIT DELETE ROWS
2. ON COMMIT PRESERVE ROWS
Deuxièmement, utilisez in() ou in()
Maison base de données Oracle Exemple pour résoudre le problème selon lequel Oracle ne peut pas utiliser plus de 1 000 dans les instructions

Exemple pour résoudre le problème selon lequel Oracle ne peut pas utiliser plus de 1 000 dans les instructions

Jun 13, 2022 pm 06:11 PM
oracle

Cet article vous apporte des connaissances pertinentes sur Oracle, qui présente principalement comment utiliser la méthode in pour interroger des enregistrements. Si le nombre de paramètres après in dépasse 1000, une erreur se produira et JDBC lancera "java.sql.SQLException : ORA-01795 : Le nombre maximum d'expressions dans la liste est de 1 000", exception. Voyons comment le résoudre. J'espère que cela sera utile à tout le monde.

Exemple pour résoudre le problème selon lequel Oracle ne peut pas utiliser plus de 1 000 dans les instructions

Tutoriel recommandé : "Tutoriel vidéo Oracle"

在oracle中,使用in方法查询记录的时候,如果in后面的参数个数超过1000个,那么会发生错误,JDBC会抛出“java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000”这个异常。

Ma solution est la suivante :

1 Créer une table temporaire

Il existe deux types de tables temporaires ORACLE : temporaires au niveau de la session. Tables et tables temporaires au niveau des transactions.

1. ON COMMIT DELETE ROWS

C'est le paramètre par défaut de la table temporaire, ce qui signifie que les données de la table temporaire ne sont valides que pendant le processus de transaction (Transaction) Le segment temporaire de la table temporaire sera automatiquement supprimé Truncate (TRUNCATE), mais la structure et les métadonnées de la table temporaire sont toujours stockées dans le dictionnaire de données de l'utilisateur. Si la table temporaire a rempli sa mission, il est préférable de supprimer la table temporaire, sinon la base de données conservera beaucoup de structure de table et de métadonnées de la table temporaire.

2. ON COMMIT PRESERVE ROWS

Cela signifie que le contenu de la table temporaire peut exister à travers les transactions. Cependant, à la fin de la session, le segment temporaire de la table temporaire sera supprimé à la fin de la session, et le segment temporaire de la table temporaire sera supprimé. données dans la table temporaire Naturellement, elles ont été supprimées. Mais la structure et les métadonnées de la table temporaire sont également stockées dans le dictionnaire de données de l'utilisateur. Si la table temporaire a rempli sa mission, il est préférable de supprimer la table temporaire, sinon la base de données conservera beaucoup de structure de table et de métadonnées de la table temporaire.

create global temporary table test_table 
(id varchar2(50), name varchar2(10)) 
on commit preserve rows; --创建临时表(当前会话生效)

--添加数据
insert into test_table VALUES('ID001', 'xgg');
insert into test_table VALUES('ID002', 'xgg2');

select * from test_table; --查询数据

TRUNCATE TABLE test_table; --清空临时表数据
DROP TABLE test_table; --删除临时表
Copier après la connexion

Après avoir créé la table temporaire, vous pouvez utiliser des sous-requêtes dans l'instruction in, afin qu'il n'y ait pas plus de 1 000 rapports d'erreurs

select * from table_name where id in(select id from test_table);
Copier après la connexion

Deuxièmement, utilisez in() ou in()

Officiellement dit : Une virgule - la liste délimitée d'expressions ne peut pas contenir plus de 1000 expressions. (liste délimitée d'ensembles d'expressions), c'est-à-dire des tuples, la syntaxe est la suivante :

SELECT * FROM TABLE_NAME WHERE (1, COLUMN_NAME) IN 
((1, VALUE_1), 
(1, VALUE_2), 
...
...
...
...
(1, VALUE_1000),
(1, VALUE_1001));
Copier après la connexion

Par exemple, si nous voulons interroger les informations utilisateur par identifiant utilisateur de la table utilisateur, nous pouvons écrire :

select * from user u where (1, u.id) in ((1, 'id001'),(1,'id002'),(1,'id003'))
Copier après la connexion
L'instruction ci-dessus est en fait équivalente à :

select * from user u where (1=1 and u.id='id001') or (1=1 and u.id='id002') or (1=1 and u.id='id003')
Copier après la connexion

La plupart de nos projets utiliseront des frameworks ORM tels que MyBatis. Nous pouvons utiliser le foreach de MyBatis. Il a été initialement écrit comme ceci :

where u.id in
<foreach collection="userIds" item="item" separator="," open="(" close=")" index="">
	#{item}
</foreach>
Copier après la connexion
.

Maintenant, il est remplacé par :

where (1, u.id) in
<foreach collection="userIds" item="item" separator="," open="(" close=")" index="">
	(1, #{item})
</foreach>
Copier après la connexion

Tutoriel recommandé : "

Tutoriel vidéo Oracle

"

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la taille de l'espace de table d'Oracle Comment vérifier la taille de l'espace de table d'Oracle Apr 11, 2025 pm 08:15 PM

Pour interroger la taille de l'espace de table Oracle, suivez les étapes suivantes: Déterminez le nom de l'espace de table en exécutant la requête: sélectionnez Tablespace_name dans dba_tablespaces; Requête la taille de l'espace de table en exécutant la requête: sélectionnez SUM (Bytes) comme total_size, sum (bytes_free) comme disponible_space, sum (bytes) - sum (bytes_free) comme used_space à partir de dba_data_files où tablespace_

Comment crypter Oracle View Comment crypter Oracle View Apr 11, 2025 pm 08:30 PM

Oracle View Encryption vous permet de crypter les données dans la vue, améliorant ainsi la sécurité des informations sensibles. Les étapes incluent: 1) la création de la clé de cryptage maître (MEK); 2) Création d'une vue cryptée, spécifiant la vue et MEK à crypter; 3) Autoriser les utilisateurs à accéder à la vue cryptée. Comment fonctionnent les vues cryptées: lorsqu'un utilisateur interroge pour une vue cryptée, Oracle utilise MEK pour décrypter les données, garantissant que seuls les utilisateurs autorisés peuvent accéder aux données lisibles.

Comment afficher le nom d'instance d'Oracle Comment afficher le nom d'instance d'Oracle Apr 11, 2025 pm 08:18 PM

Il existe trois façons d'afficher les noms d'instance dans Oracle: utilisez le "SQLPlus" et "SELECT INSTRESS_NAME FROM V $ INSTERNE;" Commandes sur la ligne de commande. Utilisez "Show instance_name;" Commande dans SQL * Plus. Vérifiez les variables d'environnement (Oracle_sid sur Linux) via le gestionnaire de tâches du système d'exploitation, Oracle Enterprise Manager ou via le système d'exploitation.

Comment désinstaller l'installation d'Oracle a échoué Comment désinstaller l'installation d'Oracle a échoué Apr 11, 2025 pm 08:24 PM

Désinstaller la méthode pour la défaillance de l'installation d'Oracle: Fermez le service Oracle, supprimez les fichiers du programme Oracle et les clés de registre, désinstallez les variables d'environnement Oracle et redémarrez l'ordinateur. Si la désinstallation échoue, vous pouvez désinstaller manuellement à l'aide de l'outil Oracle Universal Disinstal.

Comment obtenir du temps dans Oracle Comment obtenir du temps dans Oracle Apr 11, 2025 pm 08:09 PM

Il existe les méthodes suivantes pour obtenir du temps dans Oracle: current_timestamp: renvoie le temps du système actuel, précis en secondes. Systimestamp: plus précis que current_timestamp, aux nanosecondes. Sysdate: renvoie la date du système actuelle, à l'exclusion de la partie d'heure. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): convertit la date et l'heure du système actuels en format spécifique. Extrait: extrait une partie spécifique d'une valeur temporelle, comme un an, un mois ou une heure.

Comment importer une base de données Oracle Comment importer une base de données Oracle Apr 11, 2025 pm 08:06 PM

Méthode d'importation de données: 1. Utilisez l'utilitaire SqlLoader: Préparez les fichiers de données, créez des fichiers de contrôle et exécutez SqlLoader; 2. Utilisez l'outil IMP / EXP: les données d'exportation, les données d'importation. Astuce: 1. Chargeur SQL * recommandé pour les ensembles de Big Data; 2. La table cible doit exister et la définition de la colonne correspond; 3. Après l'importation, l'intégrité des données doit être vérifiée.

Comment configurer les utilisateurs d'Oracle Comment configurer les utilisateurs d'Oracle Apr 11, 2025 pm 08:21 PM

Pour créer un utilisateur dans Oracle, suivez ces étapes: créez un nouvel utilisateur à l'aide de l'instruction Créer des utilisateurs. Accorder les autorisations nécessaires en utilisant la déclaration de subvention. Facultatif: utilisez l'instruction RESSOURCE pour définir le quota. Configurez d'autres options telles que les rôles par défaut et les espaces de table temporaires.

Comment créer des curseurs dans Oracle Loop Comment créer des curseurs dans Oracle Loop Apr 12, 2025 am 06:18 AM

Dans Oracle, la boucle pour la boucle pour créer des curseurs dynamiquement. Les étapes sont: 1. Définissez le type de curseur; 2. Créez la boucle; 3. Créez le curseur dynamiquement; 4. Exécuter le curseur; 5. Fermez le curseur. Exemple: un curseur peut être créé de cycle par circuit pour afficher les noms et salaires des 10 meilleurs employés.

See all articles