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

PL/SQL Oracle Discussion :

Différence d'exécution Froq / SQLplus


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 4
    Par défaut Différence d'exécution Froq / SQLplus
    Bonjour à tous,

    il m'arrive un problème que je ne parviens pas à comprendre.

    J'ai créé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE
    s_count INTEGER := 0;
     
    BEGIN
    select count(*) into s_count from user_objects where object_name='seq_logs' and object_type='SEQUENCE';
    IF s_count >= 0 THEN
    execute immediate 'DROP SEQUENCE seq_logs';
    END IF; 
    END;
    /
    Lorsque je le lance sour sqlplus tout se passe bien, par contre lorsque j'essaie d'exécuter ce code soit depuis PHP, soit depuis Froq j'obtient le message d'erreur suivant :
    An error occured while executing the SQL statement.
    ORA-06550: Ligne 2, colonne 20 :
    PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

    * & = - + ; < / > at in is mod remainder not rem
    <exposant (**)> <> or != or ~= >= <= <> and or like like2
    like4 likec between || multiset member submultiset
    Voici les informations sur Oracle :
    SQL> select * from v$version;

    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE 11.1.0.6.0 Production
    TNS for Linux: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production
    SQL*Plus: Release 11.1.0.6.0 - Production
    Froq 2.2.2
    Note :
    je n'utilise Oracle que depuis environ 2 jours donc il est possible que je sois tombé dans les pièges dans lesquels chaque newbie avec Oracle tombe.

    Merci d'avance pour votre aide.


  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    j'ai pas trop d'idées à part celles ci :
    1/ Supprime la ligne vide entre le s_count INTEGER := 0; et le BEGIN
    2/ Mets un type NUMBER au lieu d'INTEGER


    Attention, les noms d'objets sont par défaut en majuscule dans la base (sauf si tu forces la casse lors de la création), donc 'seq_logs' => 'SEQ_LOGS'

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 4
    Par défaut
    Hello, merci pour ton aide.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DECLARE
    s_count NUMBER := 0;
    BEGIN
    SELECT count(*) INTO s_count FROM user_objects WHERE object_name='SEQ_LOGS' AND object_type='SEQUENCE';
    IF s_count >= 0 THEN
    execute immediate 'DROP SEQUENCE SEQ_LOGS';
    END IF; 
    END;
    /
    Sans succès, toujours la même erreur.

  4. #4
    Expert confirmé 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
    Par défaut
    Votre script a l'air d'être bon, la preuve: il passe sous sqlplus. Mettez aussi le code PHP qui l'exécute.

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    primo (sans rapport avec l'erreur), le test devrait etre > 0 et non >= 0 sinon a quoi bon faire le test ?
    deuxio, le même code marche bien avec du code OCI pur (y avait pas de raison)
    Donc, le soucis doit être avec ton code php...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  6. #6
    Membre expérimenté Avatar de mongilotti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2003
    Messages : 314
    Par défaut
    ton code est bon à part le > 0 au lieur de >= 0, mais est ce que tu peux nous mettre le code php qui appelle le sql?

Discussions similaires

  1. Différence d'exécution entre SQLPLUS 8 et 10
    Par bstevy dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 23/01/2015, 12h53
  2. Réponses: 2
    Dernier message: 16/08/2010, 00h43
  3. [PPT-2000] différence d'exécution mode pas à pas et mode normal
    Par Fred C dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 13/05/2009, 09h14
  4. [SQL] Différence d'exécution d'une requête entre phpmyadmin et php
    Par lodan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/08/2006, 15h56
  5. Variables dans un .sql exécuté par sqlplus
    Par ekke dans le forum Oracle
    Réponses: 10
    Dernier message: 12/04/2006, 17h03

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