Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1300 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  update sur ttes mes tables commençant par "IT_"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

update sur ttes mes tables commençant par "IT_"

n°1161575
homogene
Posté le 27-07-2005 à 14:45:25  profilanswer
 

Bonjour,
 
Je cherche une requete pour en une seul requete faire un changement de chaine de carracteres:
je m explique :
 
G un certain nombre de table qui commence tte par "IT_"
je voudrais en une requete lui faire scruter tt les champs et  
si il trouve dans les tables commençant par "IT_" la "chaine_de_caractere_1",
il me la remplace par la "chaine_de_caractere_2".
 
1 Est ce possible ?
2 si ui comment ??
 
d'avance merci


---------------
homogene
mood
Publicité
Posté le 27-07-2005 à 14:45:25  profilanswer
 

n°1161592
homogene
Posté le 27-07-2005 à 14:54:30  profilanswer
 

O g oublié de dire que c t sous Oracle 8
 
Voila a koi je pensais que ça pouvais ressembler
 
update like 'it_%'
set ID = '0150'
WHERE ID = '0657'
 
mais niette :((


---------------
homogene
n°1162002
Beegee
Posté le 27-07-2005 à 17:38:40  profilanswer
 

tu peux par exemple construire un script SQL qui contiendra tous les UPDATE.
 
Exemple:
 
SELECT 'UPDATE ' || owner || '.' || table_name || ' SET ' || column_name || ' = ''' || ta_chaine_2 || ''' WHERE ' || column_name || ' = ''' || ta_chaine_1 || ''';'
FROM ALL_TAB_COLUMNS
WHERE table_name LIKE 'IT_%';
 
Si tu ne veux pas passer par la construction d'un script SQL, tu peux utiliser des fonctions Oracle permettant d'exécuter une commande SQL passée dans une chaîne de caractères (je retrouve pas la commande là, mais je l'ai déjà utilisée).

n°1162028
homogene
Posté le 27-07-2005 à 18:01:31  profilanswer
 

Merci je vais essayer


---------------
homogene
n°1162543
Beegee
Posté le 28-07-2005 à 08:56:28  profilanswer
 

Voici une commande plus complète, qui lance les UPDATE :
 

Code :
  1. BEGIN
  2.   FOR r IN (
  3.     SELECT 'UPDATE ' || owner || '.' || table_name ||
  4.        ' SET ' || column_name || ' = ''' || 'chaine_2' ||
  5.     ''' WHERE ' || column_name || ' = ''' || 'chaine_1' || '''' AS command
  6.     FROM ALL_TAB_COLUMNS
  7.     WHERE table_name LIKE 'IT_%'
  8.   )
  9.   LOOP
  10.     EXECUTE IMMEDIATE r.command;
  11.   END LOOP;
  12. END;
  13. /
  14. COMMIT;


 
Remplace chaine_1 et chaine_2 par les bonnes valeurs :)
Et vérifie d'abord que le SELECT renvoie bien toutes les tables / colonnes que tu veux mettre à jour.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  update sur ttes mes tables commençant par "IT_"

 

Sujets relatifs
[SQL - ORACLE] Faire un somme de count sur plusieurs tables[MySQL] Update multitables
Requete sur deux tablesinterroger plusieurs tables
liste générée a partir de champs contenus dans 2 tablesmis à jour de 2 tables sous delphi
[MySQL] Lister les tables de manière flexible (tri, etc...)[PHP] - mysql - connaitre la derniere action sur une liste de tables
[PHP/MySQL] update avec reprise de l'ancienne valeur d'un champProbleme Update de mon DataSet
Plus de sujets relatifs à : update sur ttes mes tables commençant par "IT_"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR