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

PHP & Base de données Discussion :

Erreur ORA-00911


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Erreur ORA-00911
    Bonjour,

    sur mon poste de développement j'ai installé EASYPHP 1.8
    qui comprend:

    Apache 1.3.33
    MySQL 4.1.9
    PhP 4.3.10
    PhPMyadmin 2.6.1

    J'ai développé un site qui se connecte à Oracle. Tout fonctionne correctement sur ce poste.

    J'ai transférré le site sur un serveur sur lequel est installé:

    Apache 2.2.14
    php 5.3.1
    MySQL 5.1.43
    phpmyadmin 3.2.5

    Tout est installé correctement, les extensions php fonctionnent par contre j'obtient cette erreur lorsque j'utilise les fonctionnalités du site qui exécute des requêtes sur le serveur oracle:

    Warning: ociexecute() [function.ociexecute]: ORA-00911: invalid character in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\SIIATH\inventaire_depenses.php on line 152
    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
     
     
    <?php
     
    $requete_analyse = str_replace("{?DateDebut}",$date_debut,$requete_analyse);
    $requete_analyse = str_replace("{?DateFin}",$date_fin,$requete_analyse);
     
    include('connexion.php');	// BD Oracle
     
    //analyse de la requête
    $stid = ociparse($conn, $requete_analyse);
    if (!$stid) {
      $e = ocierror($conn);
      echo "<br>Une erreur s'est produite lors de l'exécution des calculs. 1<br><br>";
      echo $e['message'];
      exit;
    }
     
    // exécution de la requête
    $r = ociexecute($stid, OCI_DEFAULT);
    if (!$r) {
      $e = ocierror($stid);
      echo "<br>Une erreur s'est produite lors de l'exécution des calculs. 2<br><br>";  
      echo $e['message'];  
      exit;
    }
     
    ?>
    Les requêtes oracle sont enregistrés dans une bd MySQL.

    J'exécute donc une requete MySQL qui ramène une string enregistré dans $requete_analyse qui est par la suite exécuté par les functions php.

    Pourquoi sur le serveur les string sont interprétés différement?

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Fait un echo de $requete_analyse pour voir ce qu'il passe à ta commande Oracle.

    Et tu dis que tu stockes tes commandes Oracle dans MySQL

    Faudra prévenir Oracle de cette surprenante adaptation à leur rachat de Sun

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci de t'intéressé à mon problème,

    j'avais déjà tracé la variable qui contient la commande Oracle, autant sur l'environnement de développement que sur le nouveau serveur.

    A l'affichage je n'obtient pas le résultat réelle, mais sur mon environnement de développement la commande oracle s'exécute tout de même correctement.

    La commande oracle est enregistrée dans un champ de type text dans une table MySQL.

    C'est probablement moi qui ne sait pas trop comment afficher le contenu de la variable:

    J'exécute cette commande

    <?php
    echo "<br>" . $requete_analyse . "<br>";
    ?>

    et à l'écran je vois seulement le tier de la requête.

    Est-ce qu'il y a une particularité à propos des champs de type text dans MySQL?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ai trouvé la solution à mon problème!!

    Dans mes commandes oracle enregistré dans MySQL j'ai des alias qui comporte des accents. En supprimant les accents tout fonctionnent correctement.


    a plus

Discussions similaires

  1. erreur ora-00911 et ora-24374
    Par yassirzine dans le forum PL/SQL
    Réponses: 10
    Dernier message: 13/05/2009, 23h59
  2. Réponses: 2
    Dernier message: 15/04/2009, 07h42
  3. Réponses: 8
    Dernier message: 11/11/2008, 17h33
  4. Réponses: 2
    Dernier message: 08/08/2008, 18h03
  5. [CODE] Erreur ORA-00911
    Par FRof dans le forum Oracle
    Réponses: 7
    Dernier message: 07/08/2007, 19h25

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