Maison > base de données > tutoriel mysql > Comment extraire les noms de colonne d'une table Oracle?

Comment extraire les noms de colonne d'une table Oracle?

Susan Sarandon
Libérer: 2025-01-24 18:03:11
original
909 Les gens l'ont consulté

How to Extract Column Names from an Oracle Table?

Extraire des noms de colonnes dans Oracle : un guide complet

La table information_schema.COLUMNS de MySQL n'est pas directement mise en miroir dans Oracle. Cet article explique comment récupérer les noms de colonnes d'une table Oracle 11g, en traitant des distinctions entre schémas et espaces de table et en mettant en évidence les meilleures pratiques de sécurité.

Solution de requête Oracle

Oracle utilise la table USER_TAB_COLS (ou ALL_TAB_COLS pour l'accès entre schémas) pour stocker les métadonnées des colonnes. Pour récupérer les noms de colonnes de la table « utilisateurs », appartenant à « mon_schéma », à l'exclusion des colonnes spécifiées, utilisez cette requête :

<code class="language-sql">SELECT column_name
FROM ALL_TAB_COLS
WHERE table_name = 'USERS'
AND owner = 'my_schema'
AND column_name NOT IN ('PASSWORD', 'VERSION', 'ID')</code>
Copier après la connexion

Clarification des tablespaces et des schémas

Il est crucial de comprendre que dans Oracle, les tablespaces et les schémas sont des concepts distincts. Les espaces de table sont des emplacements de stockage, tandis que les schémas représentent les structures de propriété et d'organisation des objets de base de données. L'espace table n'est pas pertinent lors de l'interrogation des noms de colonnes ; seul le schéma (propriétaire) compte.

API Hibernate Criteria (pas d'équivalent HQL direct)

Bien qu'il n'existe pas d'équivalent HQL direct, l'API Hibernate Criteria propose une approche comparable :

<code class="language-java">Criteria criteria = session.createCriteria(User.class);
criteria.setProjection(Projections.property("columnName"));
criteria.add(Restrictions.eq("tableName", "users"));
criteria.add(Restrictions.in("columnName", new String[] {"name", "email"})); // Excludes columns</code>
Copier après la connexion

Prévention des vulnérabilités d'injection SQL

Intégrer directement des valeurs dans des requêtes SQL est très risqué. Utilisez toujours des instructions préparées ou des requêtes paramétrées pour empêcher les attaques par injection SQL et protéger votre base de données. Ceci est crucial pour toutes les requêtes dynamiques où les noms de tables ou de colonnes sont fournis par l'utilisateur.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal