J'ai créé une table de test:
1 2 3 4 5 6 7
| SQL> select * from sonar.funk;
ID GROOVE
---------- ------------------------------------------------------------
2 getfunky
2 getdown
2 get¿groove |
Je lance ensuite votre fonction après l'avoir compilée sans souci avec une recherche sur une chaîne de caractère complète :
1 2 3 4 5 6 7
| SELECT table_name,cols
FROM (
SELECT rownum,
table_name,
search_in_table('SONAR','FUNK','getfunky') cols
FROM all_tables WHERE owner='SONAR')
WHERE cols IS NOT NULL; |
Et la surprise il me renvoie une cinquantaine de tables mais toujours avec le bon nom de colonne même si cette colonne n'existe pas dans les autres tables indiquées autre que la table funk:
TABLE_NAME COLS
------------------------------ --------------------
SCHEMA_MIGRATIONS GROOVE
PROJECTS GROOVE
SNAPSHOTS GROOVE
METRICS GROOVE
PROJECT_MEASURES_OLD GROOVE
RULES GROOVE
RULES_PARAMETERS GROOVE
PROJECT_LINKS GROOVE
USERS GROOVE
RULES_PROFILES GROOVE
ACTIVE_RULES GROOVE
ACTIVE_RULE_PARAMETERS GROOVE
SNAPSHOT_SOURCES GROOVE
EVENTS GROOVE
ALERTS GROOVE
PROPERTIES GROOVE
MEASURE_DATA GROOVE
GROUPS GROOVE
GROUPS_USERS GROOVE
GROUP_ROLES GROOVE
USER_ROLES GROOVE
DEPENDENCIES GROOVE
QUALITY_MODELS GROOVE
CHARACTERISTICS GROOVE
CHARACTERISTIC_EDGES GROOVE
CHARACTERISTIC_PROPERTIES GROOVE
ACTIVE_DASHBOARDS GROOVE
DASHBOARDS GROOVE
WIDGETS GROOVE
WIDGET_PROPERTIES GROOVE
ACTIVE_RULE_CHANGES GROOVE
ACTIVE_RULE_PARAM_CHANGES GROOVE
MANUAL_MEASURES GROOVE
LOADED_TEMPLATES GROOVE
ACTION_PLANS GROOVE
DOCUMENT GROOVE
SNAPSHOT_DATA GROOVE
DUPLICATIONS_INDEX GROOVE
ISSUES GROOVE
ISSUE_CHANGES GROOVE
PROJECT_MEASURES GROOVE
FUNK GROOVE
ACTIVE_RULE_NOTES GROOVE
RULE_NOTES GROOVE
AUTHORS GROOVE
RESOURCE_INDEX GROOVE
SEMAPHORES GROOVE
MEASURE_FILTERS GROOVE
MEASURE_FILTER_FAVOURITES GROOVE
GRAPHS GROOVE
NOTIFICATIONS GROOVE
51 rows selected.
Je refais la même chose avec votre seconde fonction, celle avec le like (c'est celle qui m'intéresse) et la même chose, même résultat (50 tables dont 49 non concernée) ; en fait je voudrais rechercher l'ensemble des colonnes ayant été impactées par l'insert du caractère spécial ¿ dans la base :
Pouvez vous svp m'aider ? J'utilise ORACLE version 11G. En vous remerciant d'avance.
Partager