Dans la base de données Oracle, l'interrogation de toutes les données de la table peut être réalisée des manières suivantes.
Certaines tables système dans la base de données Oracle peuvent interroger tous les noms de tables. Grâce à ces noms de tables, vous pouvez interroger davantage les données de toutes les tables. Les tables système les plus couramment utilisées sont USER_TABLES, ALL_TABLES et DBA_TABLES.
Vous pouvez utiliser la table USER_TABLES pour interroger tous les noms de tables sous l'utilisateur actuel, comme indiqué ci-dessous :
SELECT TABLE_NAME FROM USER_TABLES;
Cette instruction SQL interrogera toutes les tables sous l'utilisateur actuel (connexion nom d'utilisateur.
Si vous devez interroger tous les noms de table pour tous les utilisateurs, vous devez utiliser la table ALL_TABLES. La table ALL_TABLES contient tous les noms de table de tous les utilisateurs de la base de données, comme indiqué ci-dessous :
SELECT OWNER, TABLE_NAME FROM ALL_TABLES;
Cette instruction SQL interrogera tous les noms de table de tous les utilisateurs et renverra l'utilisateur (PROPRIÉTAIRE) auquel appartient chaque table.
Utilisez la table DBA_TABLES pour interroger tous les noms de table dans l'ensemble de la base de données Oracle, comme indiqué ci-dessous :
SELECT OWNER, TABLE_NAME FROM DBA_TABLES;
Remarque : L'interrogation de la table DBA_TABLES nécessite des privilèges d'administrateur.
Grâce à ces requêtes, vous pouvez obtenir la liste des noms de toutes les tables, puis utiliser des instructions de boucle pour interroger les données des tables une par une.
Une autre façon d'interroger toutes les données de la table consiste à utiliser une instruction de boucle pour interroger les données de la table une par une. Vous pouvez utiliser l'une des méthodes ci-dessus pour obtenir la liste des noms de toutes les tables, puis utiliser une instruction de boucle pour interroger les données de la table une par une. L'exemple est le suivant :
DECLARE v_table_name USER_TABLES.TABLE_NAME%TYPE; BEGIN FOR c IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP v_table_name := c.TABLE_NAME; EXECUTE IMMEDIATE 'SELECT * FROM ' || v_table_name; END LOOP; END;
Ce code utilisera une instruction de boucle de curseur pour. obtenez tous les noms de table sous l'utilisateur actuel un par un, puis utilisez SQL dynamique pour interroger toutes les données de chaque table.
Résumé :
Dans la base de données Oracle, vous pouvez interroger tous les noms de tables via les tables système, ou vous pouvez utiliser des instructions de boucle pour interroger les données de chaque table une par une. La méthode à utiliser dépend de la situation. Si vous avez uniquement besoin d'obtenir une liste de noms de tables, l'utilisation d'une requête de table système suffit ; si vous avez besoin d'interroger des données de table, vous pouvez utiliser des instructions SQL dynamiques et des boucles.
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!