begin process at 2012 05 27 00:54:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

Update sur Oracle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Update sur Oracle

jeudi 25 août 2005 à 11:33:29 | Update sur Oracle

the_smurf

Bonjour!

Je cherche à mettre à jour une colonne d'une table oracle à partir d'une autre.
Voici ma requête. Elle est syntaxiquement correct mais mouline à fond sans résultats...
 
update ficcli.client a
set a.seg_phs = (
  select b.seg_phs
  from ficcliint.maj_seg_phs b
  where a.code_cp = b.code_cp
 and b.code_cp not like 'CP4%'
 and a.code_clisir = b.code_clisir)
where a.code_cp not like 'CP4%';


Y a t-il une erreur ou une autre méthode plus efficace.

(Une requête qui fonctionne sous MySQL mais pas Oracle et qui fait ce que je souhaite. Je cherche l'équivalent pour Oracle

update ficcli.client a, ficcliint.maj_seg_phs b

set a.seg_phs = b.seg_phs
where a.code_cp = b.code_cp
 and code_cp not like 'CP4%'
 and a.code_clisir = b.code_clisir;

)

merci d'avance pour votre aide

the smurf



The SMURF
the_little_smurf@yahoo.fr
Enjoy the life, don't waste your time in front of your computer

dimanche 28 août 2005 à 15:15:45 | Re : Update sur Oracle

fabrice69

Administrateur CodeS-SourceS
Bonjour,

La requette est correcte, en revanche le fait qu'elle mouline vient des 2 NOT LIKE que tu as dans cette requette.
Dès l'utilisation de ce type de demande, les performances sont totalement sacagées par cela.
Essaye de trouver une autre solution que des NOT LIKE et tu retrouveras des performances correctes.

Romelard Fabrice (Alias F___)
mercredi 31 août 2005 à 23:23:42 | Re : Update sur Oracle

nikita007

Salut,

Tout d'abord, inutile de mettre la ligne 
<<and b.code_cp not like 'CP4%'>> car c'est déjà inclu dans <<where a.code_cp = b.code_cp>> où a pointe vers <<a.code_cp not like 'CP4%';>>

update ficcli.client a
set a.seg_phs = (
  select b.seg_phs
  from ficcliint.maj_seg_phs b
  where a.code_cp = b.code_cp
 and b.code_cp not like 'CP4%'
 and a.code_clisir = b.code_clisir)
where a.code_cp not like 'CP4%';

devient

update ficcli.client a
set a.seg_phs = (
  select b.seg_phs
  from ficcliint.maj_seg_phs b
  where a.code_cp = b.code_cp
 and a.code_clisir = b.code_clisir)
where a.code_cp not like 'CP4%';




Ensuite il faudrait un explain plan de ta requête pour voir où est le soucis.

Créer la table plan_table

CREATE TABLE PLAN_TABLE (
STATEMENT_ID    VARCHAR2(30),
TIMESTAMP DATE,
REMARKS VARCHAR2(80),
OPERATION VARCHAR2(30),
OPTIONS VARCHAR2(30),
OBJECT_NODE VARCHAR2(128),
OBJECT_OWNER VARCHAR2(30),
OBJECT_NAME VARCHAR2(30),
OBJECT_INSTANCE NUMERIC,
OBJECT_TYPE VARCHAR2(30),
OPTIMIZER VARCHAR2(255),
SEARCH_COLUMNS NUMBER,
ID NUMERIC,
PARENT_ID NUMERIC,
POSITION NUMERIC,
COST NUMERIC,
CARDINALITY NUMERIC,
BYTES NUMERIC,
OTHER_TAG VARCHAR2(255),
PARTITION_START VARCHAR2(255),
PARTITION_STOP VARCHAR2(255),
PARTITION_ID NUMERIC,
OTHER LONG,
DISTRIBUTION VARCHAR2(30));

Faire l'analyse de la requête par
EXPLAIN PLAN set statement_id = 'requete' for
update ficcli.client a
set a.seg_phs = (
  select b.seg_phs
  from ficcliint.maj_seg_phs b
  where a.code_cp = b.code_cp
 and a.code_clisir = b.code_clisir)
where a.code_cp not like 'CP4%';

Ensuite lance la requête

SELECT LPAD(' ',2*(LEVEL-1))||operation operation, options, object_name, position
FROM output
START WITH id = 0 AND statement_id = 'requete'
CONNECT BY PRIOR id = parent_id AND statement_id = 'requete';

Affiche nous le resultat, en fonction de la sortie, il faudra peut-etre mettre des hints oracle ou des index

Bon courage

mercredi 21 janvier 2009 à 12:09:03 | Re : Update sur Oracle

bekri_abd

la requette est correct 
d'acord avec nikita  une ligne est de plus car il y a l'agalite des code et j'utilise substr a la place not like
update ficcli.client a
set a.seg_phs = (
  select b.seg_phs
  from ficcliint.maj_seg_phs b
  where a.code_cp = b.code_cp
 and a.code_clisir = b.code_clisir)
where substr(a.code_cp,1,3)<> 'CP4';



merci


Cette discussion est classée dans : code, oracle, cp, seg, phs


Répondre à ce message

Sujets en rapport avec ce message

équivalent show full pour oracle [ par chris38101 ] bonjour, j'aimerai avoir l'équivalent de cette commande mysql en oracle : [code=autre] SHOW full COLUMNS FROM matable; [/code] merci d'avance ORDER BY SPECIFIQUE [ par arnaudmuse ] Bonjour je suis a la recherche d'un code pour pouvoir faire un order by specifique, je m'explique. Disons que je récupère par le biais d'une requette Calcul conditionnel dans un état [ par SElKettani ] Bonsoir Access : J'ai à effectuer un calcul conditionnel : Dans un formulaire j'ai une zone de liste qui m'affiche la liste des personnes consultées Migration d'une fonction mysql vers db2 [ par jonas03 ] Bonjour a tous, J'essaie de modifier une requête sql écrite pour une bdd MySQL, en une requête pour bdd DB2. Mais j'ai beaucoup de soucis. J'ai été ob Afficher les colonnes d'une table [ par dah021 ] Bonjour, J'aimerais afficher les colonnes d'une table, mais sans passer par [code=autre]DESC nom_table[/code] Comment faire ? J'ai essayé [co calcul des taux pour chacune des ligne de colonne d'une table sur sql [ par toukourou ] Bonjour à tous! J'ai envie de calculer sous sql server un taux pour toutes les lignes correspondant à un code de personne, le taux serait calculer de connexion au base de donne [ par chirazch ] je veut établir une connexion du base de donnes d'oracle 10g au netbeans 6.8. je ne connais pas le code ou comment je fais? aussi ,je ne connais pas connexion d'oracle forms 10g avec la BD oracle 10g [ par chabouna ] Bonjour comme la majorité je suis en plein travail pour mon PFE et voilà g eu un problème au niveau de la connexion d'oracle forms 10g avec la BD orac Oracle forms Fichier text [ par iboda ] Bonjour quelqu'un peux me dire comment on peux enregistrer le résultat d'une requête sous oracle forms dans un fichier text et merci moteur de recherche sql [ par RomainMaMarine ] Bonjour, Voici mon problème du jour... j'aimerai créer un moteur de recherche sur mon site internet. Le but est de rechercher dans ma base de donn


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,465 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales