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

Langage SQL Discussion :

Déclaration de variable et utilisation dans un insert


Sujet :

Langage SQL

  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut Déclaration de variable et utilisation dans un insert
    Bonjour, je suis un peu rouillé sur le sql, ça fait un bail que je ne l'ai pas utilisé...

    J'ai un script d'init de données pour une base. Il me faudrait dans ce script récupérer et enregistrer des dates dans des variables, que je veux ré-utiliser ensuite dans mes inserts.

    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var v_storedate_current_day VARCHAR2(19) exec :v_storedate_current_day := TO_CHAR(sysdate,'DD/MM/YYYY HH24:MI:SS');
     
    Insert into PP.MA_TABLE(ID, DATE_DEBUT) values ('141' ,v_storedate_current_day);
    La syntaxe pour utiliser v_storedate_current_day ne doit pas être bonne, la ligne insert ne passe pas...

    Quelle est la solution?

    Merci!

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Heu, juste comme ca, pourquoi tu fais pas directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert into PP.MA_TABLE(ID, DATE_DEBUT) values ('141' ,TO_CHAR(sysdate,'DD/MM/YYYY HH24:MI:SS'));
    ?

    Parce que dans l'absolu, t'es peut etre pas obligé de passer par des variables, non ?
    un genre : insert select peut peut-être faire l'affaire ?


    Sinon, autre question : c'est quoi ton SGBD ? :p

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Je dois faire un script marchant sur oracle, et sur postgre.

    Le problème est :
    -que je dois réutiliser une même date dans plusieurs insert. C'est une clé étrangère, il faut donc qu'elle est la même valeur sur plusieurs insert.
    -que le script est voué à être modifié à la main ensuite. C'est donc mieux d'avoir juste un en-tete de variable à modifier ça évitera les erreurs.

  4. #4
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Je connais pas postgre spécialement, mais sur oracle, les variables n'ont pas besoin de "exec" pour moi...

    c'est soit tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_variable := TO_CHAR(sysdate,'DD/MM/YYYY HH24:MI:SS')
    soit un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select TO_CHAR(sysdate,'DD/MM/YYYY HH24:MI:SS') into ma_variable
    from dual;
    c'est pas du tout sur que tu arrives à faire un truc compatible entre postrgre et oracle.
    Autant, si ta structure de table est la même, le requetage devrait fonctionner, autant l'utilisation de variable est en général propre au SGBD...

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/02/2010, 18h02
  2. [Toutes versions] Déclaration de variable qui sert dans plusieurs macro
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 29/10/2009, 17h22
  3. [AC-2000] Mémoriser une variable pour utilisation dans plusieurs procédures
    Par P'tit aviateur dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/07/2009, 11h49
  4. Réponses: 9
    Dernier message: 19/01/2009, 00h46
  5. Variable global utilisable dans plusieurs Forms
    Par nams2590 dans le forum Visual C++
    Réponses: 13
    Dernier message: 11/12/2007, 12h34

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