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 :

Problème de débutant PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de débutant PL/SQL
    Bonsoir,

    J'espère que je ne vais pas paraître ridicule avec mon problème qui est le suivant :
    Je souhaiterais créer une procedure qui prenne un argument et affiche les lignes d'une table dont un des champ est égal à l'argument. En SQL ca donne çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Ville where nomVille = '&1';
    Je n'arrive pas le traduire en PL SQL pour créer une procédure. J'ai tenté çà mais apparement on ne peut pas afficher une ligne entière avec DBMS_OUTPUT.PUT_LINE :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE  PROCEDURE Vil(arg Ville.nomVille%Type) IS 
    PRAGMA AUTONOMOUS_TRANSACTION;
    CURSOR c1 IS SELECT * FROM Ville WHERE nomVille = arg; 
    ligne Ville%ROWTYPE;
    BEGIN  
        OPEN c1;
        LOOP
        FETCH c1 INTO ligne;
        EXIT WHEN c1%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(ligne);
    END LOOP;
    CLOSE c1;
    END;
    /
    merci d'avance

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Bienvenue dans ce forum.
    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
     
    CREATE OR REPLACE PROCEDURE Vil(arg Ville.nomVille%Type) IS 
    PRAGMA AUTONOMOUS_TRANSACTION;
    CURSOR c1 IS SELECT champ1,champ2,champ3 FROM Ville WHERE nomVille = arg; 
    ligne Ville%ROWTYPE;
    BEGIN 
    OPEN c1;
    LOOP
    FETCH c1 INTO ligne;
    EXIT WHEN c1%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(ligne.champ1||'-'||ligne.champ2||'-'||ligne.champ3);
    END LOOP;
    CLOSE c1;
    END;
    /
    mais à quoi ça sert ????

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par salim11 Voir le message
    Salut,

    Bienvenue dans ce forum.
    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
     
    CREATE OR REPLACE PROCEDURE Vil(arg Ville.nomVille%Type) IS 
    PRAGMA AUTONOMOUS_TRANSACTION;
    CURSOR c1 IS SELECT champ1,champ2,champ3 FROM Ville WHERE nomVille = arg; 
    ligne Ville%ROWTYPE;
    BEGIN 
    OPEN c1;
    LOOP
    FETCH c1 INTO ligne;
    EXIT WHEN c1%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(ligne.champ1||'-'||ligne.champ2||'-'||ligne.champ3);
    END LOOP;
    CLOSE c1;
    END;
    /
    mais à quoi ça sert ????
    Merci !!
    En fait j'aurai une appli en jdbc et lorsque l'utilisateur voudra connaitre une info sur une ville j'appelerai la procedure avec le nom qu'il aura tapé, mais bon la ca sert pas à grand chose c'est juste pour avoir une idée de comment ca marche pour pouvoir faire des requetes plus intéressantes... Après je sais pas peut être (surement) qu'il y'a des manières plus intelligentes de faire çà mais je débute alors je n'ai pas toutes les cartes en main .

  4. #4
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Salut... peux-tu essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE OR REPLACE PROCEDURE Vil(arg  Ville.nomVille%Type) IS 
    BEGIN 
         dbms_output.enable(10000000);
         For cur in (SELECT champ1,champ2,champ3 FROM Ville WHERE nomVille = arg) loop
               DBMS_OUTPUT.PUT_LINE(cur.champ1||'-'|| cur.champ2||'-'|| cur.champ3);
        END LOOP;
    END;
    /
    Avant d'exécuter ta procédure, il faut faire SET SERVEROUTPUT ON;
    LBO72.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pourquoi le PRAGMA AUTONOMOUS_TRANSACTION ?

  6. #6
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Question au grand MAITRE OraFrance

    Ce que j'ai proposé ne marche peut-être qu'à partir de la version 10g ?

    Merci.
    LBO72

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    non, en 9i ça doit fonctionner aussi

Discussions similaires

  1. [débutante]Problème combobox et requete sql
    Par lilo415 dans le forum Bases de données
    Réponses: 13
    Dernier message: 03/04/2007, 11h11
  2. [SQL Server]Problème avec l'authentification SQL SERVER
    Par tidou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2005, 15h40
  3. [SQL] Débutant en sql ...
    Par mpascolo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/03/2005, 16h16
  4. Problème d'installation de sql server 2000
    Par michelci dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/12/2003, 08h02
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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