J'essaye de rechercher quelque chose de particulier dans la base de données Oracle, mais je ne sais pas si c'est une table, ou un schéma, ou un utilisateur, etc ...
Existe-t-il une commande permettant de rechercher une chaîne si son type est inconnu?
Par exemple: SQL> SHOW STRING 'the_string'
3 Réponses :
Essayez ceci:
select * from all_objects where object_name like '%your object name%'
Veuillez noter également,
Vous auriez besoin des droits d'accès appropriés attribués à votre utilisateur.
Si % votre nom d'objet%
est en minuscules, cela fonctionne; mais les noms d'objet sont généralement MAJUSCULE SUPÉRIEURE, vous pouvez donc sélectionner * parmi tous les objets où inférieur (nom_objet) comme '% votre nom d'objet%';
Voici une requête unifiée qui devrait aider:
SELECT 'User/Schema' match_type, username FROM dba_users -- if you have access to dba_users uses all_users instead WHERE UPPER(username) LIKE '%THE_STRING%' UNION SELECT object_type, owner || '.' || object_name object_name FROM dba_objects -- or all_objects if no access to dba_objects WHERE UPPER ( owner || '.' || object_name ) LIKE '%THE_STRING%' ORDER BY 1, 2 /
Remarque, les vues dba_
afficheront tout (qui correspond), le all _ code> views n'affichera que les correspondances pour les objets auxquels vous avez accès.
En plus de la réponse d'OldProgrammer, si cette requête ne renvoie aucune information, pour savoir si le nom est un ID utilisateur (qui est fondamentalement synonyme de schémas), vous devez interroger ALL_USERS
ou DBA_USERS
:
select username from all_users where lower(username) like '%your_name_to_find%';
Vous pouvez obtenir une réponse exacte ici, mais pouvons-nous vous demander comment vous vous êtes retrouvé dans cette situation? Je veux dire, un utilisateur est une chose très différente d'une table.
Vous pouvez rechercher dans chaque colonne de
INFORMATION_SCHEMA.COLUMNS INNER JOIN INFORMATION_SCHEMA.TABLES WHERE SCHEMA_NAME = @value OR TABLE_NAME = @value OR COLUMN_NAME = @value
Cela ne fonctionnera pas dans Oracle, @Dai. Mais oui, l'idée est bonne - pour les tables et les colonnes. Le problème principal est dans "etc" de Phillip, car il semble que "l'objet de recherche" puisse être pratiquement n'importe quoi . De mon point de vue, la question elle-même n'a pas de sens, mais bon - que sais-je?
Supposons qu'un utilisateur a demandé à récupérer quelque chose de "OBJECT" mais qu'ils n'étaient pas précis sur ce qu'était même "OBJECT". Je suis juste fatigué de demander aux utilisateurs d'être précis dans un e-mail de suivi. Telle est la situation.