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 :

Peut-on déclarer un curseur hors de IS/AS


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bruce-willis
    Invité(e)
    Par défaut Peut-on déclarer un curseur hors de IS/AS
    Voici la déclaration d'un curseur dans une procédure Sql Server dont je suis entrain de traduire en Oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE cWire CURSOR FOR
    			SELECT Type FROM Table1 WHERE (Table1.IDCable IS NULL) 
    			AND EXISTS (  SELECT * FROM Table2 WHERE Table1.ID = IDWire AND IDEquipment = @IdEquipment )
    Premièrement, EXISTS n'existe pas pour Oracle donc pour l'émuler, on peut obtenir le COUNT() de ce SELECT et c'est vrai quand c'est supérieur à 0 donc

    Le problème est que la déclaration d'un curseur dans une procédure doit se faire dans le bloc IS...BEGIN non?

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par bruce-willis Voir le message
    Premièrement, EXISTS n'existe pas pour Oracle
    Si bien sûr!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL> select 1 from dual where exists (select null from all_objects where object_name like 'DBMS%');
             1
    ----------
             1

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut problème!?
    Citation Envoyé par bruce-willis Voir le message
    Le problème est que la déclaration d'un curseur dans une procédure doit se faire dans le bloc IS...BEGIN non?
    c vrai, mais où est le problème?
    si tu veux que ton curseur soit dynamique, cad que le résultat de ta requête change de temps en temps, tu peux créer un curseur avec paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cursor c_emp(param_emp_id varchar) is select * from emp where emp_id = param_emp_id;

  4. #4
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    EXISTS existe bel et bien sous Oracle mais on peut seulement l'utiliser dans un "SQL Statement" mais pas comme condition d'un IF THEN

    Donc concernant ton curseur, ce qui est à traduire c'est seulement DECLARE...CURSOR en CURSOR...IS

    Notez aussi l'utilisation de curseur dynamique dont parle guizaniseifislam!!!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    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
    Citation Envoyé par randriano Voir le message
    ...
    Notez aussi l'utilisation de curseur dynamique dont parle guizaniseifislam!!!
    Salut randriano,

    Petit remarque: Guizaniseifislam parle d'un curseur paramétré et non pas d’un "curseur dynamique."

    Deuxième petit remarque : cette notion « curseur dynamique » n’est pas vraiment correcte.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut
    merci pour cet eclaircissement concernant les curseurs, cad qu'on dit curseur paramétré et non pas curseur dynamique. L'essentiel c que bruce-willis trouve ce qu'il cherche.

  7. #7
    bruce-willis
    Invité(e)
    Par défaut
    Donc EXISTS fonctionne sous Oracle, merci!!

    Mais ce que je me demande aussi si la déclaration de curseur doit donc toujours être dans IS...BEGIN? C'est là qu'on a besoin du curseur avec paramètres???

Discussions similaires

  1. Comment déclarer une constante hors-objet
    Par jimbolelephan dans le forum C#
    Réponses: 13
    Dernier message: 07/07/2008, 09h00
  2. Peut-on déclarer une constante dans un ActionForm
    Par g_g_30 dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/12/2007, 14h34
  3. l'évenement:curseur hors fenêtre
    Par zentaf dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/11/2007, 15h10
  4. Peut-on déclarer un array dans un domaine ?
    Par colorid dans le forum SQL
    Réponses: 1
    Dernier message: 23/10/2007, 09h51
  5. [DB2] SQL dynamique pour déclarer un curseur
    Par Fatah93 dans le forum DB2
    Réponses: 3
    Dernier message: 12/12/2006, 13h06

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