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

Oracle Discussion :

[SQL]problème de requête.


Sujet :

Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut [SQL]problème de requête.
    Bonjour.

    dans le projet sur lequel je suis en train de travailler en ce moment j'ai une requête qui ne veut pas s'exécuter.
    Donc la voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into presence(id_presence, id_stagiaire, date, heure_arrivee, ip_poste) VALUES ( '3','".$id_stagiaire."','".$date2."','".$heure_arrivee."','4'  )
    et voici l'erreur qui s'affiche (à laquelle je n'ai rien compris malgrès toutes les recherches que j'ai fais sur google et sur ce forum):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: OCIStmtExecute: ORA-01747: invalid user.table.column, table.column, or column specification
    Je sais que le sujets de problèmes de requêtes ne sont pas les bienvenus sur ce forum, mais je n'ai réussi à trouver aucunne piste pour m'éclairer.
    Si quelqu'un peut m'aider sur ce qui ne va pas dans ma requête je lui en remercie d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    je vous donne le code en entier...
    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
     
     
    <?
    session_start();
     
    require("m_fonctions_utiles.php"); 
    require("codes_oracle.php"); 
     
    m_Sql_connect_Oracle(SERVEUR_ORACLE, UTILISATEUR_ORACLE, MOTDEPASSE_ORACLE, NOMBASE_ORACLE); 
     
    if (!session_id())
     session_start();
     
     session_register ('id_stagiaire');
     session_register ('heure_arrivee');
     
     
     
     
     "<b>".$date2 = date("d/m/Y");
    echo"<br>".$date2."<br>";
    "<b>".$heure_arrivee = date("H:i");
    echo"<br>".$heure_arrivee."<br>";
     
     
    $add_com = " insert into presence(id_presence, id_stagiaire, date, heure_arrivee, ip_poste) VALUES ( '3','".$id_stagiaire."','".$date2."','".$heure_arrivee."','4'  )";
     
     
     
    if ($tab_com = m_Sql_query_Oracle($add_com,$base))
     
    {
     
    echo "<h3><B><b><center><font face = papyrus>blabla</B><br><br>loplop<br>
     
    </center>";
     }
    else
    {
     echo "Erreur dans l'éxecution de la requete add_comm<br>";
     echo "Erreur".mysql_error().":".mysql_error()."<br>";
    }
     
    ?>

    version oracle : 2.2.0.0.0


    merci

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Bonjour

    Vérifie le type de tes colonnes et le type des valeurs à insérer - des id en tant que chaîne, c'est suspect.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    je l'ai déjà vérifié avant de poster il s'agit d'autre chose.

    Les identifiants sont en number, le reste en vachar à l'exeption de la date de plus j'ai fait attention aux nombres de champs...

  5. #5
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    Ca donne quoi ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    Je dois le placer où?
    A la fin de ma requête?

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    Bonjour,

    Essaie de déclarer tes variables date1, date2 en string dans ton code PHP.

    Ensuite dans ta requete d'insert, tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TO_DATE( $date1, 'DD/MM/YYYY');
    c'est forcément à ce niveau qu'il y a un soucis.

    @

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    j'ai déjà déclaré mes variables en chaine de caractères ça a donné le même résultat.
    mais je ne sais pas où placer dans la requête le TO_DATE
    je le mes à la place du insert?

    édit: l'erreur qui s'affiche, c'est sous oracle qu'elle apparaît.

  9. #9
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    Citation Envoyé par shnouf
    j'ai déjà déclaré mes variables en chaine de caractères ça a donné le même résultat.
    mais je ne sais pas où placer dans la requête le TO_DATE
    je le mes à la place du insert?
    en effet dans ton ordre INSERT, tu remplaces $date2 par TO_DATE ($date2, 'DD/MM/YYYY'), en veillant bien à la concaténation de ta chaine.

    Le plus simple est de tester tes requetes sous SQL*Plus. Ensuite, dans ton code PHP, il te reste plus qu'à concaténer ton instruction dans ta variable String;

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    je n'ai pas trop compris l'intérêt de faire ça mais je l'ai quand même fait et ça m'a affiché le même message d'erreur.

    Sinon ne prenez pas compte des variable $date2 et autres, j'ai essayé avec toto ou machin chouette ça a donné la même chose.

  11. #11
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    Citation Envoyé par shnouf
    je n'ai pas trop compris l'intérêt de faire ça mais je l'ai quand même fait et ça m'a affiché le même message d'erreur.

    Sinon ne prenez pas compte des variable $date2 et autres, j'ai essayé avec toto ou machin chouette ça a donné la même chose.
    L'intérêt il est que l'insertion puisse fonctionner !!!!!

    Comment veux tu insérer un VARCHAR dans une colonne de type DATE, si ce n'est en faisant appel à une fonction de conversion :

    D'ailleurs, il serait très utile que tu nous fournisses la description de la table.

    Sous SQL*Plus (comme te l'as demandé Bouyao) si dessus, tu fais un


  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    ok je vois ce dont vous voulez parler mais j'ai fais cette vérification avant de poster celà dit je vous donne quand même la description de ma table:

    ID_PRESENCE: NUMBER(10)
    ID_STAGIAIRE: NUMBER (10)
    DATE: date
    HEURE_ARRIVEE: VARCHAR2 (8)
    HEURE_DEPART: VARCHAR2 (8)
    DUREE: VARCHAR2 (10)
    IP_POSTE: VARCHAR2 (13)

    edit: là où j'ai eu une attaque de smileys c'était un 8 que j'ai voulu mettre.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    sinon le je le mes où dans la requête?

  14. #14
    Membre Expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Par défaut
    c'est juste pour voir la définition de la table presence.

    Dans la définition de la table, tu utilise un champ date qui est un mot reservé à Oracle. Je pense que ca vient de la

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    je vais peut être passer pour un débutant mais j'ai un peu du mal
    avec oracle.
    Comment on fait pour supprimer ou renommer un champ sous oracle?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    bon je n'ai pas réussi à renommer le champ j'ai recréé la table en remplaçant le champ "dat" par le champ jour.

    J'ai exécuté cette requête sous oracle:

    insert into presence(id_presence, id_stagiaire, heure_arrivee, ip_poste, jour) VALUES ( '3','9999','09h30','4','24/01/2006' )

    ça m'a donné:
    ORA 01843: not a valide month

    Ca doit être au niveau du format de ma date mais je ne sais pas quel format prendre.

  17. #17
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    tu as essayé avec MM/DD/YYYY soit 01/24/2006?

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    elflamby: oui

    bouyao: ORA-01400: cannot insert NULL into ("OPS$ABIP1ARC"."PRESENCE"."HEURE_DEPART")

    (hors sujet: j'ai du avoir des visions, il n'y avait pas un modérateur du nom de bouyao qui avait posté?)

  19. #19
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Remplace '24/01/2006' par : to_date('24/01/2006', 'DD/MM/YYYY')

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 155
    Par défaut
    insert into presence(id_presence, id_stagiaire, heure_arrivee, ip_poste, jour) VALUES ( '3','9999','09h30','4','24-janvier-1980' )

    qui ressemble à ce que m'a proposé bouyao m'a proposé qui marche cette fois dommage que son message aie mystérieusement disparu...




Discussions similaires

  1. [SQL] Problème de requête SQL
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/09/2006, 15h18
  2. [SQL] Problème de requête et <tr>+<td>
    Par ruty dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/08/2006, 09h10
  3. [SQL] Problème bizarre requête date
    Par masseur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2006, 13h12
  4. [Oracle] [SQL] problème de requête
    Par joselito dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 25/01/2006, 12h55
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07

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