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 12/07/2007, 14h19   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 79
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 79
Points : 14
Points : 14
Par défaut Problème Paramètres procédure pl/sql

Bonjour à tous,

Je cale sur un problème qui va surement vous paraitre simple ou débile... je ne sais pas lequel des deux est le plus approprié lol

J'ai en fait créé deux packages.
Dans un package j'aimerais appeler une procédure qui fait partie du deuxième package avec en paramètre un tableau que j'ai créé.

Voici le tableau:

Code :
1
2
	TYPE TableauAffaires IS TABLE OF AFFAIRES%ROWTYPE          INDEX BY BINARY_INTEGER;
	TabAffaires TableauAffaires;
J'essaie de passer ce tableau d'affaires à une procédure du second package pour le modifier mais oracle me répond ceci :

PLS-00306: numéro ou types d'arguments erronés dans appel à 'AJOUTLISTINGAFFAIRES'

Le message est explicite, il ne veut pas du paramètre, mais ai-je mal fait l'appel ou une déclaration ?
Est-il possible de passer un tableau en argument dans un autre package en sachant que je l'ai également déclaré dans l'autre package ?

Merci d'avance pour toute explication
tofke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 14h54   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Il faut que tu déclares ton tableau dans l'entete d'un des 2 packages et que tu l'appelles dans l'autre package en précédant du nom du package. L'autre solution est de créer un type basé.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 15h09   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 79
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 79
Points : 14
Points : 14
Tout d'abord merci pour la réponse.

Si je comprends bien, je ne dois pas passer le tableau en paramètre de la procédure mais bien l'utiliser en précisant le package d'origine soit :

monpackage.montableau

J'ai un nouveau problème qui m'est apparu, c'est le fait de n'avoir aucun paramètre dans ma procédure, oracle rouspète:

PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants :

<identificateur> <identificateur entre guillemets> current


Impossible de faire une procédure sans paramètres ??

j'ai fait une petite recherche sur google sur les types basés mais je n'ai rien trouvé de satisfaisant, ça porte un nom bien particulier ou j'ai mal cherché ?
tofke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 15h30   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par tofke
Tout d'abord merci pour la réponse.

Si je comprends bien, je ne dois pas passer le tableau en paramètre de la procédure mais bien l'utiliser en précisant le package d'origine soit :

monpackage.montableau
C'est une solution (à laquelle je n'avais pas pensé), l'autre est de ne déclarer que le type en entête et de le préfixer par le nom du package si tu l'appelles en dehors de ce package.

Citation:
Envoyé par tofke
J'ai un nouveau problème qui m'est apparu, c'est le fait de n'avoir aucun paramètre dans ma procédure, oracle rouspète:

PLS-00103: Symbole ")" rencontré à la place d'un des symboles suivants :

<identificateur> <identificateur entre guillemets> current


Impossible de faire une procédure sans paramètres ??
Il ne faut pas mettre de parenthèse si tu déclares un procédure sans paramètre.
Code :
CREATE OR REPLACE procedure maproc IS ...
Citation:
Envoyé par tofke
j'ai fait une petite recherche sur google sur les types basés mais je n'ai rien trouvé de satisfaisant, ça porte un nom bien particulier ou j'ai mal cherché ?
Code :
1
2
3
CREATE OR REPLACE
type monType AS TABLE of number;
/
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 15h41   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 79
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 79
Points : 14
Points : 14
Un grand merci pour toutes ces réponses claires, rapides et précises
tofke 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 09h56.


 
 
 
 
Partenaires

Hébergement Web