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

Oracle Discussion :

pb a la declaration d'un curseur


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut pb a la declaration d'un curseur
    Bonjour,

    voila mon probleme :
    j'essaie de créer sous SQLPLUS une FONCTION qui utilise un curseur nommée c_A;

    Lorsque je creer cette function sans le curseur , SQL PLUS me retourne le message fonction créée.
    Lorsque je recréeer cette function avec le curseur SQLPLUS me retourne le message d'erreur suivant :
    fonction créer avec erreur de compilation

    voici la fameuse méthode :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    CREATE OR REPLACE FUNCTION REQ_PRESC_INJ (	p_niufGest      IN INTEGER,
    											p_niuf    		IN INTEGER,
                               					p_aujourd_hui   IN INTEGER,
                              					p_datedeb       IN INTEGER,
                               					p_datefin 	    IN INTEGER,
                               					p_datelast      IN INTEGER,
    											p_datenext      IN INTEGER					   					   
    										)return tbl_D_inj
      IS
     
      	-----------------------------------------------------------------------------------------
     
     
    	l_nipresc    		NUMBER(7);
        l_nimed      		NUMBER(7);
    	l_lib_comp_inj  	VARCHAR2(105);
    	l_solvant       	CHAR(1);
    	l_code_unit_presc 	NUMBER(6);
    	l_libvoie			VARCHAR2(40);
    	l_code_voieadm    	VARCHAR2(8);
    	l_qttinj			NUMBER(10,2);				
        l_posoinj			NUMBER(13,3);
    	l_posoinj_totale	NUMBER(13,2);
    	l_type_inj			NUMBER(2);
    	l_typ_rap			NUMBER(1);
    	l_rap_gab			NUMBER(1);
    	l_rap_tmp			NUMBER(1);
    	l_type_adm			NUMBER(1);
    	l_duree				NUMBER(4);
    	l_voldil			NUMBER(6,1);
     
    	l_recA_inj rec_A_inj := rec_A_inj(	null,null,null,null,
    										null,null,null,null,
    										null,null,null,null,
    										null,null,null,null,
    										null);
     
    	l_tblA_inj tbl_A_inj := tbl_A_inj(l_recA_inj);
     
    	a PLS_INTEGER;
    	nbrA INTEGER;
     
       -- VEEEEEEEEERRRRIFFFFFFFFFFFFFFFFFFFFFFFF OOOOOOOOOOOOKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
       -- ajout des droits select pour les tables c_voie_inj,perfdet et pr_prf to pharm 
     
       CURSOR c_A (c_datenext NUMBER) 
        IS
          SELECT	PPD.NIPRESC,
    				PPD.NIMED,
    				PPD.LIBELLE	LIB_COMP_INJ,
    				PPD.CMP_SLV SOLVANT,
    				PCK_DXPHARM.GETUNITEPRESC(PPD.NIMED,
    											PPD.CMP_SLV,
    											PPD.UNITEPRESCT)	CODE_UNITPRESC,
    				PCVI.LIBELLE	LIB_VOIE,
    				PCVI.CODE		CODE_VOIEADM,
    				PCK_DXPHARM.CALCQTTINJ(	PPD.QUANTITE,
    										PPD.QUANTITE_TOTALE,
    										PPR.TYP_INJ_IDE,
    										PPR.TYP_ADM,
    										PPD.RAP_GAB,
    										PPD.RAP_TMP,
    										PPD.NIPRESC,
    										c_datenext,
    									    PPR.VOLUME_TOTAL_DILUTION,
    										PPD.CMP_SLV)	QTTINJ,
    				PPD.QUANTITE POSOINJ,
    				PPD.QUANTITE_TOTALE POSOINJ_TOTALE,
    				PPR.TYP_INJ_IDE	TYPE_INJ,
    				PPD.TYP_RAP,
    				PPD.RAP_GAB,
    				PPD.RAP_TMP,
    				PPR.TYP_ADM,
    				PPR.DUREE,
    				PPR.VOLUME_TOTAL_DILUTION VOLDIL
          FROM		PENSOINS.PERFDET PPD,
    				PENSOINS.PR_PRF PPR,
    				PENSOINS.C_VOIE_INJ PCVI
          WHERE		 PPD.NIMED > 0 
    				 and PPD.NIPRESC = PPR.NIPRESC 
    				 and    PPR.VOIE_IDE = PCVI.NI(+) 
    				 and    PPR.TYP_INJ_IDE = PCVI.TYP_INJ_IDE(+) 
    				 and    PCVI.RETRAIT(+) = 'F'
        ;
    l_tblD_inj tbl_D_inj;
    begin
    return l_tblD_inj;
    end;
    /
    le plus bizarre c'est que qd je créer un bloc SQL sous Toad avec ce curseur sa fonctionne très bien !!???

    et quand j'execute la requete directement sous Toad en remplacant une valeur de c_datenext cela fonctionne ossi très bien

    Est ce que qqun aurait une idée ???
    merci d'avance...

  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
    Fais un show errors après la création de ta fonction ou fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select line, position, text
    from user_errors
    where name = 'REQ_PRESC_INJ';
    Cela te donnera l'erreur et te permettra de comprendre ton problème.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Par défaut
    merci pour l'info effectivement en faisaint :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show errors fonction fonction name;
    sous sql plus on a l'erreur

    Mon problème venait de mon utilisateur qui n'avait pas les droits suffisant sur certaines tables

    merci bcp

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

Discussions similaires

  1. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  2. Masquer le curseur en mode MS-DOS
    Par Alex120 dans le forum C
    Réponses: 2
    Dernier message: 10/07/2002, 09h30
  3. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  4. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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