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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2019
    Messages : 2
    Points : 10
    Points
    10

    Par défaut [SQL0312] Erreur lors de la création d'une procédure SQL

    Bonjour à tous,

    Je chercher à développer une procédure SQL, mais je rencontre l'erreur suivante:

    Message : [SQL0312] Variable BIBCIBLE non définie ou non utilisable.

    Voici le script de ma 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    CREATE OR REPLACE PROCEDURE MNSEC.STRJRNGRC(IN ENV CHAR(3)) 
        LANGUAGE SQL
     
    BEGIN 
        DECLARE BIBCIBLE VARCHAR(128);
        DECLARE OBJ VARCHAR(128);  
     
        DECLARE WRETCODE INT DEFAULT 0 ;        -- Gestion des erreurs SQL
     
    --šgestion des erreurs 
        DECLARE CONTINUE HANDLER FOR SQLEXCEPTION , SQLWARNING , NOT FOUND SET WRETCODE = SQLCODE ;     
     
    --Requete pour la liste des objets à journaliser   
     
        SET BIBCIBLE = 'GRC' CONCAT(ENV) CONCAT('FIC');
     
        IF EXISTS (SELECT NAME FROM QSYS2.SYSTABLES WHERE TABLE_SCHEMA = 'EXPICIF' AND TABLE_NAME = 'JRNGRCARI') THEN           
            DROP TABLE EXPICIF.JRNGRCARI;                             
        END IF;
        CREATE TABLE EXPICIF.JRNGRCARI AS 
                        (select TABLE_SCHEMA AS BIB, TABLE_NAME as NOM_LONG, SYSTEM_TABLE_NAME as NOM_COURT 
                        from qsys2.systables A 
                        LEFT JOIN grcarific.GRCTRFP020 B 
                        ON A.SYSTEM_TABLE_NAME = B.NMOBJT 
                        WHERE B.NMOBJT IS NULL and  A.TABLE_SCHEMA = BIBCIBLE and TABLE_TYPE = 'T') WITH DATA;
     
    END;

    Je suis preneur de toute âme charitable qui m'aiderai ^^
    Merci,

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : octobre 2008
    Messages : 41
    Points : 54
    Points
    54

    Par défaut

    Bonjour,

    L'utilisation de variable de script dans un select de CREATE TABLE AS n'est pas permis comme la documentation (mais pas le message) l'indique :
    The select-statement must not reference variables, but may reference global variables.
    La solution la plus proche est de faire un CREATE TABLE AS ... WITH NO DATA puis un INSERT qui lui aura droit à la vaiable

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    novembre 2012
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2012
    Messages : 1 346
    Points : 8 473
    Points
    8 473

    Par défaut

    Bonjour, pour contourner le problème tu peux passer par une instruction set (tu mets ton instruction SQL sous forme de chaine de caractères) puis prepare et enfin execute.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/02/2008, 11h30
  2. Réponses: 1
    Dernier message: 12/02/2008, 10h34
  3. Erreur lors de la création d'une variable
    Par neuro6 dans le forum C++
    Réponses: 5
    Dernier message: 22/01/2007, 08h40
  4. Réponses: 4
    Dernier message: 21/02/2006, 16h47
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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