IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Problème caractères spéciaux ORA-01756


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut Problème caractères spéciaux ORA-01756
    Bonjour à tous

    j'ai un problème avec une requete sql oracle.

    J'ai une requete qui met à jour un mot de passe d'une application.

    Malheureusement il y a des caractères spéciaux qui s'y sont glissés (les espaces, mais aussi le guillements)

    Voici la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update utilisateurs set MOTPASSE = 'L@'_;' where login = 'DNFR'
    Voici l'erreur que j'ai

    Warning: odbc_exec() [function.odbc-exec]: SQL error: [Oracle][ODBC][Ora]ORA-01756: une chaîne entre apostrophes ne se termine pas correctement , SQL state S1000 in SQLExecDirect in D:\EasyPHP-5.3.2i\www\include\ChangePWD\ChangePwd.php on line 152

    Personne n'aurais une idée pour me dépatouiller de cela?

    Merci d'avance à tous.

    Damien

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    C'est quoi le type de la colonne MOTPASSE ?
    C'est quoi votre version d'Oracle ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse

    Type de mot de passe : VarChar2
    Version Oracle 10g

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    En Oracle 10g il y a un nouveau "quoting mechanism":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select q'!name LIKE '%DBMS_%%'!' from dual
    Mais, il faut toujours un caractèr pour le "quote_delimiter"!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Je comprend pas bien ta requete

    et j'ai chercher sur google mais je comprend pas comment l'implémenter dans ma mise à jours

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> create table t_mp (
      2    id              number(10) primary key,
      3    utilisateur     varchar2(20) Not Null,
      4    motdepass       varchar2(20) Not Null
      5  )
      6  /
     
    Table created
    SQL> insert into t_mp values (1, 'MNI', 'MNI')
      2  /
     
    1 row inserted
    SQL> select utilisateur, motdepass
      2    from t_mp
      3   where id = 1
      4  /
     
    UTILISATEUR          MOTDEPASS
    -------------------- --------------------
    MNI                  MNI
    SQL> update t_mp set motdepass = q'!name LIKE '%DBMS_%'!'
      2  where id = 1
      3  /
     
    1 row updated
    SQL> select utilisateur, motdepass
      2    from t_mp
      3   where id = 1
      4  /
     
    UTILISATEUR          MOTDEPASS
    -------------------- --------------------
    MNI                  name LIKE '%DBMS_%'
    Mais ça me fait penser que ton gros problème est lié à la non utilisation des variables de liaison.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    SQL> variable m varchar2(20)
    SQL> exec :m := q'!name LIKE '%DBMS_%'!'
     
    PL/SQL procedure successfully completed
    m
    ---------
    name LIKE '%DBMS_%'
     
    SQL> update t_mp set motdepass = :m
      2  where id = 1;
     
    1 row updated
    m
    ---------
    name LIKE '%DBMS_%'

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Tilt :-) merci pour cette exemple qui m'as permis que cela fonctionne. super merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème caractères spéciaux...
    Par the_edge dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2006, 09h49
  2. [MySQL] problème caractères spéciaux
    Par unmulot dans le forum PHP & Base de données
    Réponses: 37
    Dernier message: 30/06/2006, 10h50
  3. problèmes caractères spéciaux
    Par khokho dans le forum Installation
    Réponses: 1
    Dernier message: 29/04/2006, 17h15
  4. [MySQL]Problèmes caractères spéciaux
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/03/2006, 08h47
  5. Problème caractères spéciaux
    Par TeKaBloK dans le forum C
    Réponses: 2
    Dernier message: 26/12/2005, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo