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 :

ORA-01475: must reparse cursor to change bind variable datatype


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut ORA-01475: must reparse cursor to change bind variable datatype
    Bonjour à tous,

    Je travaille actuellement sur une application asp .net 2.0 communiquant avec une base Oracle.

    Dans le cadre d'un update fais par une procédure stockée, j'obtiens l'erreur suivante :
    ORA-01475: must reparse cursor to change bind variable datatype.

    Le lien ""http://ora-01475.ora-code.com/" m'indique la cause et l'action à faire mais je ne comprends pas ce que je dois changer concrètement dans mon code ou dans mes procédures stockées.

    Est-ce que qqun à dejà eu cette erreur?

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Bonjour,

    Peux tu poster ta requete update ?
    Tu dois avoir une requete avec des variables bind et le type de la valeur ne doit pas etre correct (entier à la place de varchar ou inversement).

    Sylvain

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut Voici la procédure stockée
    Dans mon code c#, ce sont des int Nullable et coté sql ce sont les types des champs directement.

    J'ai mis en rouge les champ que je modifie entre deux update et qui me sorte cette fameuse erreur.

    Voici la procédure stockée :

    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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    PROCEDURE PROJETS_UPDATE
    (
    	p_C_PROJET IN PROJETS.C_PROJET%TYPE,
    	p_C_ASSET IN PROJETS.C_ASSET%TYPE,
    	p_C_NATURE IN PROJETS.C_NATURE%TYPE,
    	p_LBL_PROJET IN PROJETS.LBL_PROJET%TYPE,
    	p_C_YEAR IN PROJETS.C_YEAR%TYPE,
    	p_C_DATA_VERSION IN PROJETS.C_DATA_VERSION%TYPE,
    	p_C_DATA_STATUS IN PROJETS.C_DATA_STATUS%TYPE,
    	p_C_CHANGE_HISTORY IN PROJETS.C_CHANGE_HISTORY%TYPE,
    	p_C_DATA_CATEGORY IN PROJETS.C_DATA_CATEGORY%TYPE,
    	p_C_DEVISE IN PROJETS.C_DEVISE%TYPE,
    	p_LBL_NEW_LIBELLE IN PROJETS.LBL_NEW_LIBELLE%TYPE,
    	p_N_SHARE_BI IN PROJETS.N_SHARE_BI%TYPE,
    	p_N_SHARE_PDC IN PROJETS.N_SHARE_PDC%TYPE,
    	p_N_SHARE_Y1 IN PROJETS.N_SHARE_Y1%TYPE,
    	p_N_SHARE_Y2 IN PROJETS.N_SHARE_Y2%TYPE,
    	p_N_SHARE_Y3 IN PROJETS.N_SHARE_Y3%TYPE,
    	p_N_INTEREST_BI IN PROJETS.N_INTEREST_BI%TYPE,
    	p_N_INTEREST_PDC IN PROJETS.N_INTEREST_PDC%TYPE,
    	p_N_INTEREST_Y1 IN PROJETS.N_INTEREST_Y1%TYPE,
    	p_N_INTEREST_Y2 IN PROJETS.N_INTEREST_Y2%TYPE,
    	p_N_INTEREST_Y3 IN PROJETS.N_INTEREST_Y3%TYPE,
    	p_N_BI_100 IN PROJETS.N_BI_100%TYPE,
    	p_N_PDC_100 IN PROJETS.N_PDC_100%TYPE,
    	p_N_Y1_100 IN PROJETS.N_Y1_100%TYPE,
    	p_N_Y2_100 IN PROJETS.N_Y2_100%TYPE,
    	p_N_Y3_100 IN PROJETS.N_Y3_100%TYPE,
    	p_C_ETAT_PUITS_BI IN PROJETS.C_ETAT_PUITS_BI%TYPE,
    	p_C_ETAT_PUITS_PDC IN PROJETS.C_ETAT_PUITS_PDC%TYPE,
    	p_C_ETAT_PUITS_Y1 IN PROJETS.C_ETAT_PUITS_Y1%TYPE,
    	p_C_ETAT_PUITS_Y2 IN PROJETS.C_ETAT_PUITS_Y2%TYPE,
    	p_C_ETAT_PUITS_Y3 IN PROJETS.C_ETAT_PUITS_Y3%TYPE,
    	p_C_FIRM_CONT IN PROJETS.C_FIRM_CONT%TYPE,
    	p_C_EXPLO_APPR IN PROJETS.C_EXPLO_APPR%TYPE,
    	p_C_OPERATING IN PROJETS.C_OPERATING%TYPE,
    	p_C_OBLIGATION IN PROJETS.C_OBLIGATION%TYPE,
    	p_C_ENVIRONMENT IN PROJETS.C_ENVIRONMENT%TYPE,
    	p_C_EXPLO_TYPE IN PROJETS.C_EXPLO_TYPE%TYPE,
    	p_BL_POSSIBILITY_F_OUT IN PROJETS.BL_POSSIBILITY_F_OUT%TYPE,
    	p_N_TARGET_OF_PI IN PROJETS.N_TARGET_OF_PI%TYPE,
    	p_N_OUT_PROBABILITY IN PROJETS.N_OUT_PROBABILITY%TYPE,
    	p_C_HC_TYPE IN PROJETS.C_HC_TYPE%TYPE,
    	p_N_RES_100 IN PROJETS.N_RES_100%TYPE,
    	p_N_RES_PG_SEC IN PROJETS.N_RES_PG_SEC%TYPE,
    	p_N_POS IN PROJETS.N_POS%TYPE,
    	p_N_EST_YEAR_RESULT IN PROJETS.N_EST_YEAR_RESULT%TYPE,
    	p_LBL_PROSPECT_NAME IN PROJETS.LBL_PROSPECT_NAME%TYPE,
    	p_L_PROSPECT_ID IN PROJETS.L_PROSPECT_ID%TYPE,
    	p_N_NBRE_OBJECTIFS IN PROJETS.N_NBRE_OBJECTIFS%TYPE,
    	p_L_COMMENT IN PROJETS.L_COMMENT%TYPE,
    	p_D_CREATION IN PROJETS.D_CREATION%TYPE,
    	p_D_UPDATE IN PROJETS.D_UPDATE%TYPE,
    	p_C_FIRM_CONT_BI IN PROJETS.C_FIRM_CONT_BI%TYPE,
    	p_C_FIRM_CONT_CATEGORY IN PROJETS.C_FIRM_CONT_CATEGORY%TYPE,
    	p_C_DATA_TYPE IN PROJETS.C_DATA_TYPE%TYPE,
    	p_N_NUM_IN_ASSET IN PROJETS.N_NUM_IN_ASSET%TYPE,
    	p_C_BLOC IN PROJETS.C_BLOC%TYPE
    )
    IS
    NUM_PROJET NUMBER;
    BEGIN
    
    	-- SC 28/01/2009 : donner un numéro à un projet qui devient Drilling ou Sismique projet
            -- qui n'a pas de numéro au départ
            IF ((p_C_DATA_CATEGORY = 1) OR (p_C_DATA_CATEGORY = 5)) THEN
    	    SELECT DECODE(N_NUM_IN_ASSET,null,0,N_NUM_IN_ASSET) INTO NUM_PROJET
    	    FROM PROJETS
    	    WHERE C_PROJET = p_C_PROJET;
    
    	    IF (NUM_PROJET = 0) THEN
     	    	SELECT COUNT(*) INTO NUM_PROJET FROM PROJETS WHERE C_ASSET=p_C_ASSET AND C_DATA_CATEGORY IN (1,5);
    	    	IF (NUM_PROJET > 0) THEN
    	    	    SELECT MAX(PROJETS.N_NUM_IN_ASSET) + 1 INTO NUM_PROJET FROM PROJETS WHERE C_ASSET=p_C_ASSET;
    	    	ELSE
    	    	    NUM_PROJET := 1;
    	    	END IF;
    	    END IF;
    	ELSE
    	    -- on ne retire pas le numéro d'un projet qui change de catégorie. Il pourra ainsi le récupérer
                -- en cas de retour en arrière
    	    NUM_PROJET := p_N_NUM_IN_ASSET;
    	END IF;
    
    	UPDATE PROJETS
    	SET
    		C_ASSET	= p_C_ASSET,
    		C_NATURE	= p_C_NATURE,
    		LBL_PROJET	= p_LBL_PROJET,
    		C_YEAR	= p_C_YEAR,
    		C_DATA_VERSION	= p_C_DATA_VERSION,
    		C_DATA_STATUS	= p_C_DATA_STATUS,
    		C_CHANGE_HISTORY	= p_C_CHANGE_HISTORY,
    		C_DATA_CATEGORY	= p_C_DATA_CATEGORY,
    		C_DEVISE	= p_C_DEVISE,
    		LBL_NEW_LIBELLE	= p_LBL_NEW_LIBELLE,
    		N_SHARE_BI	= p_N_SHARE_BI,
    		N_SHARE_PDC	= p_N_SHARE_PDC,
    		N_SHARE_Y1	= p_N_SHARE_Y1,
    		N_SHARE_Y2	= p_N_SHARE_Y2,
    		N_SHARE_Y3	= p_N_SHARE_Y3,
    		N_INTEREST_BI	= p_N_INTEREST_BI/100,
    		N_INTEREST_PDC	= p_N_INTEREST_PDC/100,
    		N_INTEREST_Y1	= p_N_INTEREST_Y1/100,
    		N_INTEREST_Y2	= p_N_INTEREST_Y2/100,
    		N_INTEREST_Y3	= p_N_INTEREST_Y3/100,
    		N_BI_100	= p_N_BI_100,
    		N_PDC_100	= p_N_PDC_100,
    		N_Y1_100	= p_N_Y1_100,
    		N_Y2_100	= p_N_Y2_100,
    		N_Y3_100	= p_N_Y3_100,
    		C_ETAT_PUITS_BI	= p_C_ETAT_PUITS_BI,
    		C_ETAT_PUITS_PDC	= p_C_ETAT_PUITS_PDC,
    		C_ETAT_PUITS_Y1	= p_C_ETAT_PUITS_Y1,
    		C_ETAT_PUITS_Y2	= p_C_ETAT_PUITS_Y2,
    		C_ETAT_PUITS_Y3	= p_C_ETAT_PUITS_Y3,
    		C_FIRM_CONT	= p_C_FIRM_CONT,
    		C_EXPLO_APPR	= p_C_EXPLO_APPR,
    		C_OPERATING	= p_C_OPERATING,
    		C_OBLIGATION	= p_C_OBLIGATION,
    		C_ENVIRONMENT	= p_C_ENVIRONMENT,
    		C_EXPLO_TYPE	= p_C_EXPLO_TYPE,
    		BL_POSSIBILITY_F_OUT	= p_BL_POSSIBILITY_F_OUT,
    		N_TARGET_OF_PI	= p_N_TARGET_OF_PI,
    		N_OUT_PROBABILITY	= p_N_OUT_PROBABILITY,
    		C_HC_TYPE	= p_C_HC_TYPE,
    		N_RES_100	= p_N_RES_100,
    		N_RES_PG_SEC	= p_N_RES_PG_SEC,
    		N_POS	= p_N_POS,
    		N_EST_YEAR_RESULT	= p_N_EST_YEAR_RESULT,
    		LBL_PROSPECT_NAME	= p_LBL_PROSPECT_NAME,
    		L_PROSPECT_ID	= p_L_PROSPECT_ID,
    		N_NBRE_OBJECTIFS	= p_N_NBRE_OBJECTIFS,
    		L_COMMENT	= p_L_COMMENT,
    		D_UPDATE	= sysdate,
    		C_FIRM_CONT_BI	= p_C_FIRM_CONT_BI,
    		C_FIRM_CONT_CATEGORY	= p_C_FIRM_CONT_CATEGORY,
    		C_DATA_TYPE	= p_C_DATA_TYPE,
    -- SC 28/01/2009
    		-- N_NUM_IN_ASSET	= p_N_NUM_IN_ASSET,
    		N_NUM_IN_ASSET	= NUM_PROJET,
    		C_BLOC	= p_C_BLOC	WHERE
    		C_PROJET = p_C_PROJET
    ;
    
    
    END PROJETS_UPDATE;

  4. #4
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Es tu sur que ce qui est envoyé à ta procédure est bien de type int ?
    Mis à part ça je ne vois pas ...

    Sylvain

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Par défaut
    Oui j'ai soit un nombre compris entre 0 et 100 soit null si le champ n'est pas rempli....

    Merci quand même...

Discussions similaires

  1. ORA-01000: maximum open cursors exceeded
    Par tro2blabla dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/08/2008, 15h00
  2. ORA-01000: maximum open cursors exceeded
    Par tro2blabla dans le forum PL/SQL
    Réponses: 3
    Dernier message: 21/08/2008, 14h56
  3. Réponses: 6
    Dernier message: 16/07/2008, 09h48
  4. Réponses: 5
    Dernier message: 04/12/2007, 10h49
  5. ORA -3212 sur un cursor
    Par nenekes dans le forum SQL
    Réponses: 6
    Dernier message: 20/09/2007, 14h47

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