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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Copie conditionnelle d'une colonne de T1 vers une colonne de T2

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copie conditionnelle d'une colonne de T1 vers une colonne de T2

n°2102498
speedstrea​m
Posté le 20-09-2011 à 18:17:39  profilanswer
 

Bonjour à Tous,
 
J'ai fait une recherche sans succès sur le forum. Donc j'ouvre ce topic.
 
J'utilise Oracle 9.2 et voici mon problème.
 
J'ai une table T1 avec une colonne CODE_ARTICLE que je souhaite copier vers une colonne CODE_ARTICLE de T2  SEULEMENT SI le contenu de T1.CODE_ARTICLE commence par la chaine 'ART_A%'
Je veux également ajouter une valeur chaine (toujours la même) dans la colonne T2.ATELIER, voisine de T2.CODE_ARTICLE pour chaque ligne ajoutée à T2.
L'ordre d'écriture n'a pas d'importance. Le tout c'est que les données soient présentes dans T2.
 
Comment dois-je rédiger le code SQL ?
 
A la fin, le résultat dans T2 doit donner ce qui suit :
 
Colonne T2.CODE_ARTICLE           Colonne T2.ATELIER
ART_A0001                                      ATELIER1
ART_A0002                                      ATELIER1
ART_A0023                                      ATELIER1
ART_A0248                                      ATELIER1
ART_A0005                                      ATELIER1
ART_A ....                                        ATELIER1
 
Merci beaucoup pour votre aide  :bounce:

mood
Publicité
Posté le 20-09-2011 à 18:17:39  profilanswer
 

n°2102525
lasnoufle
La seule et unique!
Posté le 20-09-2011 à 19:54:01  profilanswer
 

Wesh
 
Y'a un piège avec la version 9.2? Avec 10g/11g j'aurais dit tout simplement:

INSERT INTO t2(code_article, atelier)
SELECT code_article, 'ATELIER1'
FROM t1
WHERE code_acticle LIKE 'ART\_A%' ESCAPE '\';


---------------
C'était vraiment très intéressant.
n°2102748
speedstrea​m
Posté le 21-09-2011 à 20:54:47  profilanswer
 

Bonjour,
 
Merci beaucoup pour cette réponse. En fait, ça me donne le même message d'erreur que la requête que j'avais montée avec un curseur (qui était plus compliquée que la tienne, il faut bien l'admettre  :) ) Donc mon problème doit venir d'ailleurs.
 
En fait, ce message dit qu'il ne peut pas entrer une chaine vide dans les colonnes de la table cible. Sur une requête de base du genre SELECT code_article FROM t1 WHERE code_article LIKE 'ART_A%', ça fonctionne. Mais quand je lance la requête que tu m'as donné (où la mienne avec un curseur), on dirait que la lecture, ou peut-être l'écriture, ne se fait pas correctement. Et je n'arrive pas à tracer l'état du curseur intermédiaire.
 
J'ai pourtant désactivé les triggers sur les tables et j'ai les droits pour écrire où je veux en base en validant tout d'un simple commit.
 
Je vais continuer de chercher et je tiendrai au courant si je trouve. Merci encore

n°2103075
lasnoufle
La seule et unique!
Posté le 23-09-2011 à 17:05:57  profilanswer
 

Re

 

T'as surement un champ de ta table cible, autre que code_article et atelier, qui a une contrainte "NOT NULL" et pas de valeur par défaut. Donc quand tu essaies d'insérer un nouvel enregistrement avec juste code_article et atelier, ben ca passe pas puisque tu ne spécifies pas de valeur pour ce champ.

 

Solutions possibles:
1 - déclare une valeur par défaut pour le(s) champ(s) en question en plus de la contrainte NOT NULL
2 - modifies la requete pour qu'elle déclare une valeur pour le(s) champ(s) NOT NULL, genre

INSERT INTO t2(code_article, atelier, champ_qui_peut_pas_etre_null)
SELECT code_article, 'ATELIER1', 'valeur_par_defaut'
FROM t1
WHERE code_acticle LIKE 'ART\_A%' ESCAPE '\';


Message édité par lasnoufle le 23-09-2011 à 17:06:25

---------------
C'était vraiment très intéressant.

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

  Copie conditionnelle d'une colonne de T1 vers une colonne de T2

 

Sujets relatifs
Convertisseur html vers PDF en ligne de commandeindustrialisation d'outil vba vers c++...
[POO] Héritage vers Base de données relationellecopier de excel vers word
faire un lien vers une vidéo pour la telecharger ?colonne de combobox
[analyse] transformer MCD vers UML[Lazarus]drag and drop vers une autre application
[Wiki] Créer des liens externes vers un serveurCopie de Données dans SQL Server depuis MS Acces
Plus de sujets relatifs à : Copie conditionnelle d'une colonne de T1 vers une colonne de T2


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