Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 04/01/2007, 17h37   #1
Invité de passage
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 4
Points : 4
Envoyer un message via MSN à lifeisgood Envoyer un message via Yahoo à lifeisgood
Par défaut PLS-00306: numéro ou types d'arguments erronés dans appel à 'fn_traiter_entete'

salut.
j'ai le msg qui s'affiche :
Citation:
PLS-00306: numéro ou types d'arguments erronés dans appel à 'fn_traiter_entete'
voici mon script
Code :
1
2
3
v_id_file := UTL_FILE.fopen (v_file_dir, p_file_name, 'w');
fn_traiter_entete_bcp(v_id_file);
....
et la declaration de ma fct :
Code :
FUNCTION fn_traiter_entete(p_id_file   IN OUT  UTL_FILE.FILE_TYPE)
j'utilise oracle 9i

merci pour l'aide
lifeisgood est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 18h40   #2
Membre éclairé
 
Inscription : décembre 2004
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2004
Messages : 349
Points : 367
Points : 367
Il m'étonnerait que ta fonction soit compilée !

Autant que je sache IN OUT sont des mots réservés aux procédures .

CDLT.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 09h31   #3
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 taska
Autant que je sache IN OUT sont des mots réservés aux procédures .
Faux :
Code :
1
2
3
4
5
6
7
SQL> CREATE OR REPLACE FUNCTION test (a IN out number) RETURN varchar2 IS
  2  begin
  3    a := 1;
  4    RETURN 'OK';
  5  end;
  6  /
FUNCTION created.
Mais tu as raison, il serait plus judicieux de passer par une procédure.

Moi ce qui me choque davantage c'est que tu ne récupères pas le résultat de ta function dans une variable.
__________________
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 05/01/2007, 09h45   #4
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Citation:
Envoyé par plaineR
Moi ce qui me choque davantage c'est que tu ne récupères pas le résultat de ta function dans une variable.
Et moi c'est ce qui me choque encore plus c'est que le nom de la fonction déclarée fn_traiter_entete n'est pas le même que celui de la fonction invoquée fn_traiter_entete_bcp.

Est-ce une erreur de frappe ?
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h25.


 
 
 
 
Partenaires

Hébergement Web