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 :

quoted string not properly terminated & autres


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Par défaut quoted string not properly terminated & autres
    Bonjour,

    Je suis en train d'écrire un outil qui me permet de remplir ma base Oracle a partir de données exportées depuis DB2. Mon outil lit donc le fichier binaire DB2 et génère du code SQL pour remplir la base Oracle. A la suite de quoi j'exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus -S "user/passwd" <monscript.sql
    Je rencontre des problème lorsqu'il s'agit d'injecter du code HTML dans des CLOB où il se plaint de quoted string not properly terminated et d'unknown command.
    J'ai donc extrait une des instructions qui posent problème et je l'ai exécutée dans sqlplus directement (sans plus de succès, ce qui est logique)
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    SQL*Plus: Release 11.2.0.2.0 Production on Mer. Janv. 16 15:15:36 2013
     
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
     
    Use "connect username/password@XE" to connect to the database.
    SQL> connect user/passwd
    Connected.
    SQL> INSERT INTO CIMG_DEV."DP@COMMANDEINFOSOUSDOUA" VALUES (64519, ' ', 'M. UUUUUUUU Alain', 'xxxxx yyyyyy FRANCE', 'CHEZ xxxxx FRANCE DEPOT', ' ', ' ', 'FR ', ' ', 'W7026', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx yyyyyy FRANCE SAS</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx FRANCE DEPOT 
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">4 ROUTE DE ZZZZZZZZ
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">45340 WWWWWW LA VVVVVVVVVV</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', 'FR000000245', ' ');  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16  ERROR:             
    ORA-01756: quoted string not properly terminated                                                                                  
     
     
    SQL> SP2-0734: unknown command beginning "' || '</fo..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '    ..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '    ..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '</fo..." - rest of line ignored.                                                  
    SP2-0044: For a list of known commands enter HELP                                                                                 
    and to leave enter EXIT.                                                                                                          
    SQL> SP2-0734: unknown command beginning "' || '    ..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '    ..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '    ..." - rest of line ignored.                                                  
    SQL> SP2-0734: unknown command beginning "' || '  </..." - rest of line ignored.                                                  
    SP2-0044: For a list of known commands enter HELP                                                                                 
    and to leave enter EXIT.                                                                                                          
    SQL>                                                                                                                              
    SP2-0734: unknown command beginning "' || '</ht..." - rest of line ignored.                                                       
    SQL>
    Note :

    1. il y a 2 champs CLOB contenant chacun du HTML
    2. je ne garantis pas que le HTML soit correct, mais ca ne devrait pas avoir d'importance
    3. je veux conserver mes retours à la ligne, les lignes vides et les éventuels / qui seraient tout seuls ... c'est pour ca que j'ai fait toutes ces concaténations (à cause des lignes vides)

    Merci pour votre aide !

  2. #2
    Membre émérite Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Par défaut
    Hello,

    J'arrive pas a reproduire...

    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
     
     
    create table COMMANDEINFOSOUSDOUA
    (id number, val1 varchar2(50), val2 varchar2(50), val3 varchar2(50), val4 varchar2(50), val5 varchar2(50), val6 varchar2(50), val7 varchar2(50), val8 varchar2(50),
    val9 varchar2(50), vallob1 clob,vallob2 clob,val10 varchar2(50),val11 varchar2(50));
     
    INSERT INTO CIMG_DEV."DP@COMMANDEINFOSOUSDOUA" VALUES (64519, ' ', 'M. UUUUUUUU Alain', 'xxxxx yyyyyy FRANCE', 'CHEZ xxxxx FRANCE DEPOT', ' ', ' ', 'FR ', ' ', 'W7026', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx yyyyyy FRANCE SAS</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx FRANCE DEPOT 
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">4 ROUTE DE ZZZZZZZZ
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">45340 WWWWWW LA VVVVVVVVVV</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', 'FR000000245', ' ');
     
    table COMMANDEINFOSOUSDOUA created.
    1 rows inserted.
    jko

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Par défaut
    Effectivement, je n'ai pas fait attention, mais les caractères spéciaux HTML ont été convertis par le forum ! ( & #160; ) ... je remet l'instruction SQL, sachant qu'en théorie il n'y a pas d'est passe entre le & et le # ...

    Cela dit, ca nous donne un indice : le problème doit être dans ce "& #160;" puisque sans lui tout fonctionne.

    NOTE : j'ai oublié de préciser que je commence mes scripts avec "SET SCAN OFF" pour qu'il n'interprète pas les &

    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
    INSERT INTO CIMG_DEV."DP@COMMANDEINFOSOUSDOUA" VALUES (64519, ' ', 'M. UUUUUUUU Alain', 'xxxxx yyyyyy FRANCE', 'CHEZ xxxxx FRANCE DEPOT', ' ', ' ', 'FR ', ' ', 'W7026', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx& #160;yyyyyy& #160;FRANCE SAS</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', '<html>
    ' || '  <head>
    ' || '
    ' || '  </head>
    ' || '  <body>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">xxxxx& #160;FRANCE& #160;DEPOT& #160;
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">4& #160;ROUTE& #160;DE& #160;ZZZZZZZZ
    ' || '</font>    </p>
    ' || '    <p style="margin-top: 0">
    ' || '      <font size="3" face="Arial">45340& #160;WWWWWW& #160;LA& #160;VVVVVVVVVV</font>
    ' || '    </p>
    ' || '  </body>
    ' || '</html>', 'FR000000245', ' ');

  4. #4
    Membre émérite Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Par défaut
    Pour ne pas interpréter les & c'est set define off

    jko

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Par défaut
    Citation Envoyé par jkofr Voir le message
    Pour ne pas interpréter les & c'est set define off
    A priori SET SCAN OFF a le meme effet .... après essai, pas mieux avec le SET DEFINE OFF

  6. #6
    Membre émérite Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Par défaut
    ok, cela fonctionnait parfaitement avec sqldeveloper mais pas avec sqlplus

    il faut ajouter un backslash à la fin de chaque ligne.

    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
    INSERT INTO COMMANDEINFOSOUSDOUA VALUES (64519, ' ', 'M. UUUUUUUU Alain', 'xxxxx yyyyyy FRANCE', 'CHEZ xxxxx FRANCE DEPOT', ' ', ' ', 'FR ', ' ', 'W7026', '<html> \
    ' || '  <head> \
    ' || ' \
    ' || '  </head> \
    ' || '  <body> \
    ' || '    <p style="margin-top: 0"> \
    ' || '      <font size="3" face="Arial">xxxxx& #160;yyyyyy& #160;FRANCE SAS</font> \
    ' || '    </p> \
    ' || '  </body> \
    ' || '</html>', '<html> \
    ' || '  <head> \
    ' || ' \
    ' || '  </head> \
    ' || '  <body> \
    ' || '    <p style="margin-top: 0"> \
    ' || '      <font size="3" face="Arial">xxxxx& #160;FRANCE& #160;DEPOT& #160; \
    ' || '</font>    </p> \
    ' || '    <p style="margin-top: 0"> \
    ' || '      <font size="3" face="Arial">4& #160;ROUTE& #160;DE& #160;ZZZZZZZZ \
    ' || '</font>    </p> \
    ' || '    <p style="margin-top: 0"> \
    ' || '      <font size="3" face="Arial">45340& #160;WWWWWW& #160;LA& #160;VVVVVVVVVV</font> \
    ' || '    </p> \
    ' || '  </body> \
    ' || '</html>', 'FR000000245', ' ');
     
    1 lignes créée.
    Bien garder à l'esprit que Oracle est écrit en C

    Jko

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/11/2009, 15h14
  2. String literal is not properly closed by a double-quote
    Par soufiane10 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 24/03/2009, 23h22
  3. ORA-01756: quoted string not properly terminated
    Par hottnikks_79 dans le forum SQL
    Réponses: 14
    Dernier message: 22/05/2007, 12h02
  4. Envoyer un String d'une jFrame à l'autre
    Par Wanty dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 23/02/2006, 13h36
  5. [C#]Fonction vérifiant qu'1 string est contenue ds 1 autre
    Par closo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2005, 13h41

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