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 :

ORA-01756: quoted string not properly terminated


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Points : 50
    Points
    50
    Par défaut ORA-01756: quoted string not properly terminated
    J'essaie d'insérer un nom contenant un apostrophe dans ma base de donnée Oracle et j'obtiens l'erreur suivante:
    ORA-01756: quoted string not properly terminated

    Comment insère-t-on une valeur avec un apostrophe?

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    par exemple
    aussi possible dans une version pas trop ancienne


  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par laurentschneider
    par exemple
    aussi possible dans une version pas trop ancienne
    Sous Oracle ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par McM
    Sous Oracle ?
    oui, Oracle 10gR1 et ultérieur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> select q'{C'est la vie}' from dual;
     
    Q'{C'ESTLAVIE}'
    ---------------
    C'est la vie
    http://download-uk.oracle.com/docs/c...003.htm#i42617

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par laurentschneider
    oui, Oracle 10gR1 et ultérieur
    Vous êtes sûr que ce n'est à partir de la 10gR2 ?
    En 10gR1 (sans modifier mon paramétrage), voici ce que j'obtiens :
    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
     
    10g SOC10> select * from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Prod
    PL/SQL Release 10.1.0.3.0 - Production
    CORE    10.1.0.3.0      Production
    TNS for 32-bit Windows: Version 10.1.0.3.0 - Production
    NLSRTL Version 10.1.0.3.0 - Production
     
    5 ligne(s) sélectionnée(s).
     
    10g SOC10> select q'{C'est la vie}' from dual;
    ERROR:
    ORA-01756: une chaîne entre apostrophes ne se termine pas correctement
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Oui, en 10.1 ça marche aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SQL> SELECT * FROM V$VERSION;
    Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Prod 
    PL/SQL Release 10.1.0.4.0 - Production 
    CORE 10.1.0.4.0 Production 
    TNS for Linux: Version 10.1.0.4.0 - Production 
    NLSRTL Version 10.1.0.4.0 - Production 
     
    SQL> SELECT q'{C'est la vie}' from dual;
    C'est la vie
    Quelle est la version du client?

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL*Plus: Release 9.0.1.4.0 - Production on Lu Mai 21 15:29:15 2007
     
    (c) Copyright 2001 Oracle Corporation.  All rights reserved.
     
     
    Connecté à :
    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    il te faut un client 10g !

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Effectivement, merci Laurent mais comment aurais-je pu savoir que cette erreur est liée au fait que la version de mon client est trop ancienne par rapport à la base ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    L'ajout d'un 2e apostrohe semble bien fonctionner cependant, le résultat entre ce qu'affiche mon RESPONSE.WRITE(query) et les valeurs entrées dans la table Oracle diffèrent:

    Voici mon code:
    ---------------------------------------
    Do Until rsemp.eof
    firstname = replace(rsemp("firstname"), "'", "''")
    lastname = replace(rsemp("lastname"), "'", "''")

    query = "UPDATE tbl_employe SET nom = '"& lastname &", "& firstname &"' WHERE id_employe = '"& rsemp("id_employe") &"'"
    Response.Write(query)
    Execution(query)

    rsemp.MoveNext
    Loop
    -------------------------------------

    Le RESPONSE.WRITE(QUERY) m'affiche que l'entrée devrait avoir 2 apostrophes mais dans la table l'entrée n'en a qu'un seul

  12. #12
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Magnus
    Effectivement, merci Laurent mais comment aurais-je pu savoir que cette erreur est liée au fait que la version de mon client est trop ancienne par rapport à la base ?
    c'est un problème général lorsqu'on employe une syntaxe (style WITH, MERGE, XQUERY, ...) qui n'est pas connue par le client

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par hottnikks_79
    L'ajout d'un 2e apostrohe semble bien fonctionner cependant, le résultat entre ce qu'affiche mon RESPONSE.WRITE(query) et les valeurs entrées dans la table Oracle diffèrent:

    Voici mon code:
    ---------------------------------------
    Do Until rsemp.eof
    firstname = replace(rsemp("firstname"), "'", "''")
    lastname = replace(rsemp("lastname"), "'", "''")

    query = "UPDATE tbl_employe SET nom = '"& lastname &", "& firstname &"' WHERE id_employe = '"& rsemp("id_employe") &"'"
    Response.Write(query)
    Execution(query)

    rsemp.MoveNext
    Loop
    -------------------------------------

    Le RESPONSE.WRITE(QUERY) m'affiche que l'entrée devrait avoir 2 apostrophes mais dans la table l'entrée n'en a qu'un seul

    tu t'éviterais bien du tracas et tu éviterais de gaspiller ta shared pool et tu gagnerais en performance si tu employais des Bind variables.

  14. #14
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par laurentschneider
    c'est un problème général lorsqu'on employe une syntaxe (style WITH, MERGE, XQUERY, ...) qui n'est pas connue par le client
    Effectivement, j'ai déjà "ennuyé" des experts comme toi avec (presque) toutes ces syntaxes
    La cause était à chaque fois la même : la version du client est trop ancienne.

    Si j'utilisais un client en version 10 pour accéder des bases en 7i, 8i, 9i, 10gR1, 10gR2 est-ce que ça résoudrait TOUS ces problèmes de compatibilités ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  15. #15
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    non, tu ne peux pas employer un client 10g pour te connecter en 7, la connection est refusée par un ORA-03134: Connections to this server version are no longer supported.

Discussions similaires

  1. ORA-00933: SQL command not properly ended
    Par yupa dans le forum Oracle
    Réponses: 3
    Dernier message: 29/03/2022, 15h12
  2. quoted string not properly terminated & autres
    Par gRRosminet dans le forum SQL
    Réponses: 14
    Dernier message: 17/01/2013, 14h17
  3. [AC-2007] ORA-00933: SQL command not properly ended (#933)
    Par zoom61 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/12/2010, 09h38
  4. Réponses: 2
    Dernier message: 10/11/2009, 15h14
  5. Réponses: 1
    Dernier message: 08/02/2008, 17h32

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