Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2011, 21h47   #1
Membre habitué
 
Avatar de tfc3146
 
Homme Robert Labrousse
Développeur décisionnel
Inscription : février 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Robert Labrousse
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2009
Messages : 79
Points : 134
Points : 134
Par défaut Probleme de concatenation requete SQL

Bonsoir, j'ai un soucis avec une concaténation de chaîne dans une requête SQL. Je travaille avec Oracle 10g.


Code :
UPDATE premiers SET divisible||TO_CHAR(compteur) = '0' WHERE chiffre=compteur;
Les erreurs renvoyées sont :
MULTIPLES PROCEDURE 1 17 35 PL/SQL: ORA-00927: signe 'égal' absent ERROR 0
MULTIPLES PROCEDURE 2 17 6 PL/SQL: SQL Statement ignored ERROR 0

Merci d'avance
tfc3146 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 00h29   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
Ce n'est pas une bonne syntaxe pour un update.
http://sql.1keydata.com/fr/sql-update.php
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 14h25   #3
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
Bonjour,

Utilise le SQL dynamique :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
DECLARE
    lv_query      VARCHAR2 (4000) := ' ';
    ln_compteur   NUMBER          := 0;
BEGIN
    lv_query := lv_query || ' UPDATE premiers ';
    lv_query := lv_query || ' SET divisible' || TO_CHAR (ln_compteur) || ' = ''0'' ';
    lv_query := lv_query || ' WHERE chiffre='|| ln_compteur ;
 
    EXECUTE IMMEDIATE lv_query;
 
    COMMIT;
EXCEPTION
    WHEN OTHERS
    THEN
        ROLLBACK;
END;
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 14h35   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Dans votre procedure le bloc
Code :
1
2
3
4
5
6
 
...
EXCEPTION
    WHEN OTHERS
    THEN
        ROLLBACK;
Ne sert strictement à rien à part d'être un bug.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2011, 15h22   #5
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
Il est vrai que dans ce cas precis ça ne sert à rien, en fait je l'ai mis par habitude
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h18   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Vous voulez dire par mauvaise habitude.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/02/2011, 12h00   #7
Membre habitué
 
Avatar de tfc3146
 
Homme Robert Labrousse
Développeur décisionnel
Inscription : février 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Robert Labrousse
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2009
Messages : 79
Points : 134
Points : 134
Merci ORA-007.
tfc3146 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h56.


 
 
 
 
Partenaires

Hébergement Web