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 :

Utilisation procedure pl/sql dans requete sql


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 60
    Par défaut Utilisation procedure pl/sql dans requete sql
    Voila je suis debutante en pl/sql et j'ai cree une procedure getDistance(p t_points) pour calculer la distance d'un point a un autre et j'aimerai l'utiliser dans un requete sql pour connaitre la distance entre deux points idp donnes 'Py' et 'Px' mais je ne sais pas du tout comment ecrire la requete sql en utilisant ma methode getDistance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TYPE t_points AS OBJECT
    (
     idp VARCHAR(5),
     coord t_coordonnees,
     echelle NUMBER(5),
    )
    /

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Il n'y a pas de getDistance dans la source que tu proposes

    Et merci de penser aux balises CODE

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 60
    Par défaut
    Ben le fait de donner le type points je ne voyais pas l'interet de mettre le corps de la methode vu que c'est juste le calcul d'une distance entre deux points a partir des coordonnees mais bon voici elle compile normalement

    @orafrance Ps: je ne savais pas qu'il y avait des balises codes desole

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE OR REPLACE TYPE BODY  t_points IS
    MEMBER FUNCTION getDistance(p t_points) RETURN NUMBER IS
    distance NUMBER :=0;
    BEGIN
    distance := SQRT(POWER((p.coord.x - SELF.coord.x),2) + POWER((p.coord.y - SELF.coord.y),2));
    RETURN distance;
    END getDistance;
    END ;
    show errors;
    l;
    c'est juste que je ne sais pas comment l'utiliser dans une requete select pour avoir la distance entre deux points 'py' et 'px'


    Je sais je suis pas douee en sql et pl/sql mais j'ai ratee quelques cours suite a des soucis de sante

  4. #4
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select getDistance(p) from dual
    sachant p est renseigné de type t_points

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 60
    Par défaut
    j'ai la reponse suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT getDistance(p) FROM dual
           *
     
    ERROR at line 1:
    ORA-00904: "GETDISTANCE": invalid identifier

    je pensai qui fallait plutot quelque chose du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT p1.getDistance(p2)
    FROM .............

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    ET oui, comme il s'agit d'une méthode de l'objet, il faut d'abord un objet pour pouvoir ensuite appeler sa méthode. Je ne suis pas sûr que cela convienne à votre besoin. Une simple fonction stockée serait sans doute plus simple à utiliser.

  7. #7
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    supposant qu'on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TYPE t_points AS OBJECT
    (
     idp VARCHAR(5),
     coord varchar(10), 
    echelle NUMBER(5),
    )

    parceque je ne connait pas

    et testez...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select getdist(t_points('rrrr','y',41325)) from dual

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

Discussions similaires

  1. Utilisation variable/alias (SQL) dans requet
    Par caledonien dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/11/2011, 09h38
  2. Réponses: 13
    Dernier message: 23/09/2011, 18h24
  3. utiliser une requete SQL dans un shell
    Par gdeon dans le forum Linux
    Réponses: 6
    Dernier message: 21/04/2009, 20h51
  4. [SQL] Recupération Requete SQL dans un tableau dynamique PHP
    Par victor.jbju dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/09/2006, 16h48
  5. résultat d'une requete SQL dans un tableau en JSP
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/04/2005, 16h17

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