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 :

[BLOB]Warning:Package Body created with compilation errors?


Sujet :

Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut [BLOB]Warning:Package Body created with compilation errors?
    Salut à tous,

    J'ai ceci :

    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
    CREATE OR REPLACE PACKAGE sql_blob IS
     
      -- Procédure servant à ajouter un BLOB à notre table.
      -- p_id correspond à l'id
      -- p_name correspond au nom du fichier à inserer.
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no INTEGER, p_note VARCHAR2,
      					 p_name VARCHAR2, p_lastChange VARCHAR2, p_lasDate DATE,
      					 DAMREPAIR INTEGER, DAMHISTO INTEGER,DAMWRESP INTEGER,TD_HI_METHOD INTEGER,
      					 TEARDOWN INTEGER,TESTID INTEGER,DAMAGEID INTEGER,FACILITY1 INTEGER,
      					 FACILITY2 INTEGER,FACILITY3 INTEGER);
     
    END sql_blob;
    /
    CREATE OR REPLACE PACKAGE BODY sql_blob IS
     
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no INTEGER, p_note VARCHAR2,
      					 p_name VARCHAR2, p_lastChange VARCHAR2, p_lasDate DATE,
      					 DAMREPAIR INTEGER, DAMHISTO INTEGER,DAMWRESP INTEGER,TD_HI_METHOD INTEGER,
      					 TEARDOWN INTEGER,TESTID INTEGER,DAMAGEID INTEGER,FACILITY1 INTEGER,
      					 FACILITY2 INTEGER,FACILITY3 INTEGER) IS
        v_blob  BLOB;
        v_bfile BFILE;
      BEGIN
        -- On insére la ligne avec un blob vide dont on récupère le pointeur
        INSERT INTO T_PICTURE
        VALUES
          (p_id, p_title, p_DATE, p_no, p_note, empty_blob(), p_lastChange, p_lastDate, DAMREPAIR,
          DAMHISTO,DAMWRESP,TD_HI_METHOD,TEARDOWN,TESTID,DAMAGEID,FACILITY1,FACILITY2,FACILITY3)
        RETURNING image INTO v_blob;
        -- On déclare un pointeur vers notre fichier
        v_bfile := bfilename(directory => 'PICTURES', filename => p_name);
        -- On ouvre ce fichier
        dbms_lob.fileopen(v_bfile);
        -- On rempli l'emplacement du BLOB vide dans la table avec le contenu de notre fichier
        dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile));
        -- On ferme le fichier
        dbms_lob.fileclose(v_bfile);
      END;
    END sql_blob;
    /
    Et quand je lance la procédure, il me marque
    Package created
    Warnig : Package Body created with compilation errors

    Le directory 'PICTURES' est le dossier où j'ai mes photos.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Fais un show err après la compilation de ton package. Après tu devrais réussir à corriger des erreurs.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    J'ai fait un : show errors PACKAGE BODY "sql_blob";
    Et là il me dit "No errors" ...

    Est ce que par hasard il ne faudrait pas importer des librairies DBMS ?

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select line, position, text
    from user_errors
    where name = upper('SQL_BLOB');

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Euh je ne sais pas si c'est ce que tu t'attends ... " no rows selected
    "

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Et en vrai, ton package s'appelle bien SQL_BLOB ? Sinon remplace dans la requête que je t'ai indiquée le vrai non de ton package...

    Si tu n'as toujours pas d'erreurs fais :
    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
    CREATE OR REPLACE PACKAGE sql_blob IS 
     
      -- Procédure servant à ajouter un BLOB à notre table. 
      -- p_id correspond à l'id 
      -- p_name correspond au nom du fichier à inserer. 
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no INTEGER, p_note VARCHAR2, 
                      p_name VARCHAR2, p_lastChange VARCHAR2, p_lasDate DATE, 
                      DAMREPAIR INTEGER, DAMHISTO INTEGER,DAMWRESP INTEGER,TD_HI_METHOD INTEGER, 
                      TEARDOWN INTEGER,TESTID INTEGER,DAMAGEID INTEGER,FACILITY1 INTEGER, 
                      FACILITY2 INTEGER,FACILITY3 INTEGER); 
     
    END sql_blob; 
    / 
    show err
    CREATE OR REPLACE PACKAGE BODY sql_blob IS 
     
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no INTEGER, p_note VARCHAR2, 
                      p_name VARCHAR2, p_lastChange VARCHAR2, p_lasDate DATE, 
                      DAMREPAIR INTEGER, DAMHISTO INTEGER,DAMWRESP INTEGER,TD_HI_METHOD INTEGER, 
                      TEARDOWN INTEGER,TESTID INTEGER,DAMAGEID INTEGER,FACILITY1 INTEGER, 
                      FACILITY2 INTEGER,FACILITY3 INTEGER) IS 
        v_blob  BLOB; 
        v_bfile BFILE; 
      BEGIN 
        -- On insére la ligne avec un blob vide dont on récupère le pointeur 
        INSERT INTO T_PICTURE 
        VALUES 
          (p_id, p_title, p_DATE, p_no, p_note, empty_blob(), p_lastChange, p_lastDate, DAMREPAIR, 
          DAMHISTO,DAMWRESP,TD_HI_METHOD,TEARDOWN,TESTID,DAMAGEID,FACILITY1,FACILITY2,FACILITY3) 
        RETURNING image INTO v_blob; 
        -- On déclare un pointeur vers notre fichier 
        v_bfile := bfilename(directory => 'PICTURES', filename => p_name); 
        -- On ouvre ce fichier 
        dbms_lob.fileopen(v_bfile); 
        -- On rempli l'emplacement du BLOB vide dans la table avec le contenu de notre fichier 
        dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile)); 
        -- On ferme le fichier 
        dbms_lob.fileclose(v_bfile); 
      END; 
    END sql_blob; 
    / 
    show err

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Ca me met pareil :

    Package crée
    No errors

    Warning: Package Body created with compilation errors.
    No errors

  8. #8
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Etrange... Voici ce que j'obtiens après avoir créer une table t_picture (en fonction des données que tu insères) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> show err
    Errors for PACKAGE BODY SQL_BLOB:
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    11/5     PL/SQL: SQL Statement ignored
    13/73    PLS-00201: identifier 'P_LASTDATE' must be declared

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Je m'étais trompé car j'avais tapé : show errors PACKAGE BODY "sql_blob";

    tu vois d'où peut venir l'erreur obtenur ?

  10. #10
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Normalement le forum n'a pas vocation de debugguer le code des uns et des autres...

    Pour cette fois-ci uniquement : dans la déclaration de ta procédure tu mets : plasdate (sans le t) alors que dans ta procédure tu utilises plastdate (avec le t).

  11. #11
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Désolé pour le déboggage mais là je vois pas du tout c'est pour ça.

    J'ai mis p_last... et j'ai tjrs la même erreur

  12. #12
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    J'ai résolu mon problème en enlevant la ligne me posant problème. J'ai donc ceci :

    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
    CREATE OR REPLACE PACKAGE sql_blob IS
     
      -- Procédure servant à ajouter un BLOB à notre table.
      -- p_id correspond à l'id
      -- p_name correspond au nom du fichier à inserer.
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no NUMBER, p_note VARCHAR2,
      					 p_name VARCHAR2, p_lastChange VARCHAR2, p_lastDate DATE,
      					 DAMREPAIR NUMBER, DAMHISTO NUMBER,DAMWRESP NUMBER,TD_HI_METHOD NUMBER,
      					 TEARDOWN NUMBER,TESTID NUMBER,DAMAGEID NUMBER,FACILITY1 NUMBER,
      					 FACILITY2 NUMBER,FACILITY3 NUMBER);
     
    END sql_blob;
    /
    show err;
    CREATE OR REPLACE PACKAGE BODY sql_blob IS
     
      PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no NUMBER, p_note VARCHAR2,
      					 p_name VARCHAR2, p_lastChange VARCHAR2, p_lastDate DATE,
      					 DAMREPAIR NUMBER, DAMHISTO NUMBER,DAMWRESP NUMBER,TD_HI_METHOD NUMBER,
      					 TEARDOWN NUMBER,TESTID NUMBER,DAMAGEID NUMBER,FACILITY1 NUMBER,
      					 FACILITY2 NUMBER,FACILITY3 NUMBER) IS
        v_blob  BLOB;
        v_bfile BFILE;
      BEGIN
        -- On insére la ligne avec un blob vide dont on récupère le pointeur
        INSERT INTO T_PICTURE
        VALUES
          (p_id, p_title, p_DATE, p_no, p_note, empty_blob(), p_lastChange, p_lastDate, DAMREPAIR,
          DAMHISTO,DAMWRESP,TD_HI_METHOD,TEARDOWN,TESTID,DAMAGEID,FACILITY1,FACILITY2,FACILITY3);
     
        -- On déclare un pointeur vers notre fichier
        v_bfile := bfilename(directory => 'Pictures', filename => p_name);
        -- On ouvre ce fichier
        dbms_lob.fileopen(v_bfile);
        -- On rempli l'emplacement du BLOB vide dans la table avec le contenu de notre fichier
        dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile));
        -- On ferme le fichier
        dbms_lob.fileclose(v_bfile);
      END;
     
    END sql_blob;
    /
     
    show err;
    Maintenant j'ai voulu l'exécuter j'ai ce message d'erreur :

    ERROR at line 1:
    ORA-22285: non-existent directory or file for FILEOPEN operation
    ORA-06512: at "SYS.DBMS_LOB", line 504
    ORA-06512: at "B240.SQL_BLOB", line 20
    ORA-06512: at line 1


    N'est ce pas un problème d'importation de librairie ?

  13. #13
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Non, l'erreur est pourtant claire :
    - soit ton directory n'existe pas (à spécifier en majuscules)
    - soit ton fichier n'existe pas

    Apparemment dans ton cas c'est que tu n'as pas mis ton directory en majuscules.

Discussions similaires

  1. [12c] Create Package Body PKG_CUR retourne une erreur
    Par dedalios dans le forum PL/SQL
    Réponses: 10
    Dernier message: 14/03/2015, 16h35
  2. [IPB] Warning : here appears to be an error with the database
    Par renaud26 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 23/07/2013, 11h05
  3. Réponses: 4
    Dernier message: 22/12/2008, 16h17
  4. Compiler "Errors Warning" dans Eclipse
    Par JohnNC dans le forum Langage
    Réponses: 3
    Dernier message: 11/03/2008, 15h08
  5. [debutant][SQL]Package body et Create table
    Par Carlito_superheros dans le forum Oracle
    Réponses: 6
    Dernier message: 07/04/2006, 10h31

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