Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2010, 22h02   #1
Invité de passage
 
Inscription : octobre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 21
Points : 3
Points : 3
Par défaut Package Qui fonctionnait sous Oracle 9i mais pas sur 11g

Bonjour a tous,

voici un Package qui fonctionnait très bien sur Oracle 9i mais qui ne l'ai plus depuis que nous avons change de version.
Quelqu'un pourrais jeter un coup d’œil dessus et me dire ce qui ne vas pas avec ce code.
Au début, on faisait des tests avec la version 9i avec ce code
et tout marchait bien mais le package a été détruit. Maintenant, on a installe la nouvelle version on veut créer un nouveau package avec ce même code. Mais lorsque j'appuie sur le bouton enregistre cela m'affiche 4 erreurs:
-
Citation:
Error(6,2): PL/SQL: Declaration ignored
-Error(7,18): PLS-00201: identifier 'MSG4.IDX' must be declared
-Error(13,2): PL/SQL: Declaration ignored
-Error(15,21): PLS-00201: identifier 'MSG4.IDX' must be declared
voici le package:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 CREATE OR REPLACE
PACKAGE AEPACK IS
 
 TYPE cur IS REF CURSOR;
 
FUNCTION CALCIDX1(
    startidx  IN msg4.idx%TYPE,
    maxidx    IN msg4.idx%TYPE, 
    incr      IN msg4.idx%type
 )
 RETURN msg4.idx%type;
 
 PROCEDURE AEPROC1 (
   cur_out      OUT aepack.cur, 
   startidx     IN  msg4.idx%TYPE, 
   idxincr      IN  msg4.idx%TYPE, 
   counter_name IN  msg4.source%TYPE, 
   alm_suffix   IN  msg4.source%TYPE
 );
END AEPACK;
Vous remerciant par avance,

très cordialement,

Lele79
lele79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 22h34   #2
Membre actif
 
Inscription : février 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 167
Points : 161
Points : 161
Par défaut Table msg4 manquante

Bonjour,

Il vous manque manifestement une table du nom de msg4.
Je ne pense pas qu'il s'agisse d'une table du dictionnaire Oracle qui aurait disparu entre la version 9 et la 11.

Si vous avez accès à votre ancienne base vous pouvez peut-être la re-créer ?
Ce package faisait partie d'une application ?

Pozzo
Pozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 23h21   #3
Invité de passage
 
Inscription : octobre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 21
Points : 3
Points : 3
Bonjour Pozzo, le forum,

merci de vous préoccuper de mon problème!.

Citation:
Il vous manque manifestement une table du nom de msg4.
La Table MSG4 est bien présenté.

Citation:
Si vous avez accès à votre ancienne base vous pouvez peut-être la re-créer ?
Ce package faisait partie d'une application ?
C'est justement ce que j’essaie de faire. J'ai toujours l'ancienne base, je veux juste rajouter ce package parmi les autres packages déjà existant. Tout en sachant qu'avant le changement de version cela marchait!

Quant a votre dernière question, je suis néophyte avec Oracle et la base des données, qu'entendez vous par :"Faisait partie d'une application?"

Cordialement,

lele79.
lele79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 08h59   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 307
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 307
Points : 5 796
Points : 5 796
Citation:
Envoyé par lele79 Voir le message
...
La Table MSG4 est bien présenté.
...
Mais, en plus, l'utilisateur qui est le propriétaire du package doit avoir les droits nécessaire pour y accéder.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 14h11   #5
Membre actif
 
Inscription : février 2007
Messages : 167
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 167
Points : 161
Points : 161
Par défaut profil de la table msg4

C'est peut-être un soucis de colonnes.

Que donne la commande desc msg4 depuis sqlplus ?

Pozzo
Pozzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 00h52   #6
Invité de passage
 
Inscription : octobre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 21
Points : 3
Points : 3
Bonjour a tous,

Merci pour vos remarques. J'ai renseigne le nom de l'utilisateur devant le nom du package et maintenant ca marche.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE OR REPLACE
PACKAGE OPS$OCSHIS.AEPACK IS
 
 TYPE cur IS REF CURSOR;

 FUNCTION CALCIDX1(
    startidx  IN msg4.idx%TYPE,
    maxidx    IN msg4.idx%TYPE, 
    incr      IN msg4.idx%type
 )
 RETURN msg4.idx%type;
 
 PROCEDURE AEPROC1 (
   cur_out      OUT AEPACK.cur, 
   startidx     IN  msg4.idx%TYPE, 
   idxincr      IN  msg4.idx%TYPE, 
   counter_name IN  msg4.source%TYPE, 
   alm_suffix   IN  msg4.source%TYPE
 );
 
END AEPACK;
merci pour votre aide.

Cordialement,

Lele79
lele79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h20.


 
 
 
 
Partenaires

Hébergement Web