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

PL/SQL Oracle Discussion :

Tableau en paramètre d'une procédure stockée


Sujet :

PL/SQL Oracle

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Par défaut Tableau en paramètre d'une procédure stockée
    Bonjour,

    Je souhaiterai passer un tableau en paramètre d'une procédure stockée sur oracle 10g.

    Ma procédure est bien crée sans erreur mais je n'arrive pas à l'exécuter.

    Le message d'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    BEGIN utiinsert('nomtest', 'prenomtest', 'logintest', 'mdptest', 'mailtest', 'teltest', 1, 1); END;
     
          *
    ERREUR à la ligne 1 :
    ORA-06550: Ligne 1, colonne 7 :
    PLS-00306: numéro ou types d'arguments erronés dans appel à 'UTIINSERT'
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored
     
     
    SP2-0103: Rien à exécuter dans la mémoire tampon SQL.
    Pas d'erreur.
    Voici le type et la procédure :
    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
     
    CREATE OR REPLACE TYPE ARRAY_INT IS TABLE of number;
    CREATE OR REPLACE PROCEDURE utiinsert
    (
    p_utinom IN VARCHAR2, p_utiprenom IN VARCHAR2, p_utilogin IN VARCHAR2, p_utimdp IN VARCHAR2, p_utimail IN VARCHAR2, p_utitel VARCHAR2, p_utiprof IN NUMBER, p_utifonc IN ARRAY_INT
    )
    IS
    v_utiid varchar2(50);
    BEGIN
    INSERT INTO utilisateur 
    (utiid, profid, utinom, utiprenom, utilogin, utimdp, utimail, utitel, utisuppr) 
    VALUES
     (S_UTILISATEUR.NEXTVAL, p_utiprof, p_utinom, p_utiprenom, p_utilogin, p_utimdp, p_utimail, p_utitel, 0) returning rowid into v_utiid;
    FORALL i IN p_utifonc.FIRST..p_utifonc.LAST
            INSERT INTO FONC_UTI(utiid, foncid) VALUES(v_utiid, p_utifonc(i));
    END;
    Exécution de la procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec utiinsert('nomtest', 'prenomtest', 'logintest', 'mdptest', 'mailtest', 'teltest', 1, 1);

    Script de création de la base en pièce jointe.


    Je n'arrive pas à trouver mon erreur.
    Merci d'avance.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/12/2006, 12h37
  2. Réponses: 2
    Dernier message: 27/06/2006, 15h21
  3. Réponses: 4
    Dernier message: 14/02/2006, 15h33
  4. Passer le nom de colonne en paramètre d'une procédure stocké
    Par theartist dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/01/2005, 15h39
  5. Un fichier .bmp comme paramètre d'une Procédure stockée
    Par FONKOU dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2004, 17h56

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