Je n'arrive pas à écrire une requête. J'ai un support appelé 'MYTABLE' et il a une colonne appelée 'TABLENAME' qui peut contenir un ou plusieurs noms de tables. Plusieurs tables sont séparées par des virgules.Problème lors de l'écriture d'une requête SQL
Exemple:
TBLUSER
TBLUSER, TBLACCOUNT
Je suis en train d'écrire une requête qui permettra d'identifier toutes les entrées de la table MYTABLE qui ne sont pas valides tables dans la base de données. J'ai pu écrire la suite ....
SELECT *
FROM MYTABLE T1
LEFT outer JOIN ALL_TAB_COLS T2
ON ( upper(T1.TABLENAME) = upper(t2.Table_Name)
AND T2.Owner = 'ME'
)
WHERE TABLE_NAME IS NULL;
Et il fonctionne exactement comme je veux - mais il ne fonctionne que lorsque l'entrée en MYTABLE contient une seule table. Lorsque plusieurs tables sont séparées par des virgules, l'opération échoue. Mes compétences SQL manquent quelque peu et mon instinct naturel est de «faire un pour chacun» mais je pense que ce n'est pas la bonne approche (et je n'ai aucune idée de la façon de le faire en SQL).
Pourquoi dans le monde conserveriez-vous plusieurs tables sur une seule ligne? – TheTXI
Reverse normalisation, TheTXI. C'est toute la rage. – Welbog
Je crois que la pensée originale était qu'il serait plus facile pour les utilisateurs «non techniques» de modifier les données si elles pouvaient simplement les taper dans un seul champ. Je ne suis pas sûr si je suis d'accord avec ça ou pas; mais, malheureusement, c'est "comment c'est". Naturellement, lorsque l'une de ces tables est mal typée, il se produit une panne de l'application - j'espérais écrire une requête SQL pour identifier les lignes qui causeraient un plantage. –