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

SQL Oracle Discussion :

:aie: [ Cursor / Package ] - Problème de syntaxe


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut :aie: [ Cursor / Package ] - Problème de syntaxe
    Bonjour,

    J'ai un problème de syntaxe avec l'utilisation de Curseur Explicite au sein d'un Package voila le cas :

    SPEC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create or replace
    PACKAGE PKG_RIGHTMNGT AS
    
      -- VALEURS RENVOYER PAR LES FONCTIONS
      aclDefault XMLTYPE ;  
      
      CURSOR xmlname_cur RETURN XMLTYPE ; -- declare cursor spec
       
      -- Renvoi les ACLs par default d'un profile
      function acl_default(profile_in IN VARCHAR2) return XMLTYPE ;
    END PKG_RIGHTMNGT;
    BODY
    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
    create or replace
    PACKAGE BODY PKG_RIGHTMNGT AS  
      
      -- Renvoi les ACLs par default d'un profile
      function acl_default(profile_in IN VARCHAR2) return XMLTYPE AS  
      BEGIN  
        
        CURSOR xmlname_cur RETURN XMLTYPE IS
          SELECT
            XMLElement("XMLNAME", 
              XMLAttributes(extractValue(ACL_DEF,'/FIELDS/XMLNAME/@ID') AS "ID"),
              XMLElement("PROFILE", XMLElement( profile_in,extract(ACL_DEF,'/FIELDS/XMLNAME/PROFILE/'||profile_in||'/text()'))))
          FROM 
            Tfields ;
        ...
        RETURN aclDefault ;
      END acl_default ;
      
    END PKG_RIGHTMNGT;
    comment peut on déclaré ce curseur de facon Valide...

    J'ai lu la doc d'Oracle mais l'exemple donnée (avec une requete simple) adapté à mon cas... est invalide...

    merci de votre aide...


    INFO :: Base Oracle en 10gR2

  2. #2
    Membre habitué
    Inscrit en
    Juin 2003
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 107
    Points : 126
    Points
    126
    Par défaut
    Voici une facon plus simple d'utiliser un curseur
    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
     
    PROCEDURE PROCEDURE_PRD IS
     
    CURSOR PRDOUITS_CUR IS
    SELECT    CODE_PRODUITS,
    	   NOM_PRODUIT
     FROM PRODUITS;
     
    PRODUITS_REC PRDOUITS_CUR%ROWTYPE;
     
    BEGIN
    	FOR PRODUITS_REC IN PRODUITS_CUR
    	LOOP
    	BEGIN
    	  IF PRODUITS_REC.CODE_PRODUITS  IS NULL .... THEN
    	....
    	END;
    END;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    daccord sauf pour

    PRODUITS_REC PRDOUITS_CUR%ROWTYPE;
    lorsqu'un curseur et utilisé de cette façon la declaration de la variable de reception est automatique et n'a pas a être faite.

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    La declaration du curseur n'est pas au bon endroit (la faire AVANT le BEGIN)
    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
    function acl_default(profile_in IN VARCHAR2) return XMLTYPE AS  
      CURSOR xmlname_cur RETURN XMLTYPE IS
          SELECT
            XMLElement("XMLNAME", 
              XMLAttributes(extractValue(ACL_DEF,'/FIELDS/XMLNAME/@ID') AS "ID"),
              XMLElement("PROFILE", XMLElement( profile_in,extract(ACL_DEF,'/FIELDS/XMLNAME/PROFILE/'||profile_in||'/text()'))))
          FROM 
            Tfields ;
      
      
    BEGIN  
          ...
        RETURN aclDefault ;
      END acl_default ;
      
    END PKG_RIGHTMNGT;
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    Merci pour vos réponses...

    j'ai fais l'aquisition de ce suberbe bouquin http://www.superbookdeals.com/cgi-bi...3428801&bisac=
    ou on y trouve toutes les réponses concernant PL/SQL
    très bien fait & très claire !!

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

Discussions similaires

  1. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  2. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  3. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  4. Réponses: 2
    Dernier message: 08/03/2004, 15h10
  5. [Packages] Problème d'organisation
    Par lolo... dans le forum JBuilder
    Réponses: 5
    Dernier message: 22/04/2003, 13h05

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