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 :

insertion direct de date+heure dans un champs


Sujet :

Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut insertion direct de date+heure dans un champs
    Rebonsoir à tous,

    Dans le cadre d'un achat de livre pour apprendre le SQL(avec ORACLE) j'ai créé et configuré une instance de BDD ORACLE 11g sous Seven. J'ai avec ce livre 2 scripts qui sont la création des tables et l'insertion des données.

    L'insertion des tables c'est bien passé (enfin je n'est pas encore intégré les contraintes, je pense le faire après les données est ce juste?) par contre j'ai un soucis d'insertion de données.

    J'ai sur 3 tables différentes des insertion de date et heure du style :
    '2002-11-21 17:18:30'

    J'ai beau me renseigné mais je ne vois pas comment les inseré. En fait je cherche à insérer les dates directement en 1 script.
    Mes renseignements mon fait comprendre qu'il était possible sinon de passé par une conversion avec la fonction TO_DATE.
    Mais j'aimerais être sûr de savoir si il est possible ou pas d'inséré directement d'un coup mes dates au lieu de faire des conversion ?

    Voici un script de table dans lequel je souhaite inséré une date du style mentionné ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /*==============================================================*/
    /* Table : T_FORUM_FRM                                          */
    /*==============================================================*/
    create table T_FORUM_FRM  (
       FRM_ID               INTEGER                         not null,
       FRM_NOM              CHAR(64)                        not null,
       FRM_SUJET            VARCHAR2(256),
       FRM_DATE_CREATION    TIMESTAMP                       not null,
       constraint PK_T_FORUM_FRM primary key (FRM_ID)
    );
    Qu'en pensez-vous?
    Pourriez-vous m'aider à obtenir la BDD exemple sous oracle ?


    Merchi à touche,

  2. #2
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Hi,
    J'ai pas trop bien compris le post... mais si tu veux convertir lors de l'insertion dans ta table T_FORUM8FRM, ceci pourrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO  T_FORUM_FRM
    VALUES (1,'miltone','insertion direct de date + heure dans un champs',
              TO_TIMESTAMP ('2002-11-21 17:18:30','YYYY-MM-DD HH24:MI:SS')
      );
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    J'ai pas trop bien compris le post
    En gros j'ai besoin d'avoir : '1996-11-18 20:52:23'
    dans un champ temps ou date d'une base ORACLE tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
           VALUES (1, 'fr.comp.applications.sgbd', 'Bases de données', '1996-11-18 20:52:23', TO_TIMESTAMP('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));
    Cette commande me retourne :
    Error starting at line 1 in command:
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION)
    VALUES (1, 'fr.comp.applications.sgbd', 'Bases de données', '1996-11-18 20:52:23', TO_TIMESTAMP('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'))
    Error at Command Line:1 Column:12
    Error report:
    SQL Error: ORA-00913: trop de valeurs
    00913. 00000 - "too many values"
    *Cause:
    *Action:



    quant à cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
           VALUES (3, 'fr.comp.applications.sgbd', 'Bases de données', TO_TIMESTAMP('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));
    Elle m'insere bien les données mais pour ce qui est de la date il n'insère que :
    '18/11/96'

    Peut-être faut t-il codé le caractère espace dans la requête ?

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    J'ai trouvé !

    j'ai fait une altération de la session :

    ALTER session SET nls_date_format='DD/MM/YYYY HH24:MI:SS';

    Enfin je suis obligé de passé par un TIMESTAMP sur chaque ligne d'insertion. Sur 1000 lignes ca fait un peu beaucoup.

    Je tourne mes requetes SQL dans tout les sens et je n'arrive toujours pas à inserer cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
           VALUES (8, 'fr.comp.applications.sgbd', 'Bases de données', '1996-11-18 20:52:23');

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    L'avantage du timestamp par rapport au format date, c'est la prise en compte des millisecondes, la possibilité de jouer avec les fuseaux horaires, et d'être plus ou moins normatif entre les différents SGBD.

    Si vous n'avez besoin d'aucune de ces fonctionnalités, vous pouvez utiliser le format date.

    Quel est le problème avec vos 1000 insertions ?
    Vous allez les effectuer à la main ? Vous n'avez pas un fichier avec ces données ?

  6. #6
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par miltone Voir le message
    quant à cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
           VALUES (3, 'fr.comp.applications.sgbd', 'Bases de données', TO_TIMESTAMP('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));
    Elle m'insere bien les données mais pour ce qui est de la date il n'insère que :
    '18/11/96'
    Cette requête est la bonne. les heures/minutes/... sont bien insérées, c'est juste que tu ne les voit pas car le format d'affichage dépends du NLS_DATE_FORMAT.

    Donc, changer NLS_DATE_FORMAT c'est bien pour l'affichage.

    Si tu veux une date au lieu d'un timestamp, utilise TO_DATE au lieu de TO_TIMESTAMP.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    merci à vous pour vos réponses...

    Serie de requete qui semble marché pour obtenir '2005-02-23 11:28:13' dans un champ

    type de champ = DATE
    ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION)
    VALUES (7, 'fr.comp.applications.sgbd', 'Bases de données', TO_DATE('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));

    =====================================================

    Par contre mon alter session ne se conserve pas d'une session à l'autre. Donc
    au retour sur ma BDD les champs on tous été modifiés.

    Je me penche sur la question mais si vous avez des conseils je l'es prend avec plaisir.

    Par contre est ce que mon champs date pourra être requeté par rapport au temps, à la date et les deux à la fois ?

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    J'avance j'avance...

    J'ai trouvé le TRIGGER pour appliquer une commande oracle dès la connection de mon utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create or replace
    trigger TG_DB_AFTER_LOGON after logon on database
    begin
    if user = 'miltone' then
    execute immediate 'ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    end if;
    end;
    Malheureusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    Me génère des erreurs. Il n'aime pas les symboles 'YYYY', 'HH24', 'MI', 'SS'

  9. #9
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par miltone Voir le message
    Malheureusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    Me génère des erreurs. Il n'aime pas les symboles 'YYYY', 'HH24', 'MI', 'SS'
    Tu essayes dans NLS_DATE_FORMAT de preciser aussi le format de l'heure... je pense pas que ce soit ainsi qu'il faut proceder. Je crois qu'ici tu dois juste modifier la date.
    Si je ne m'abuse, pour modifier le format de l'heure il faut utiliser NLS_TIME_FORMAT.
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  10. #10
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par miltone Voir le message
    Me génère des erreurs. Il n'aime pas les symboles 'YYYY', 'HH24', 'MI', 'SS'
    Il faut doubler les guillements.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par miltone Voir le message
    Serie de requete qui semble marché pour obtenir '2005-02-23 11:28:13' dans un champ

    ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION)
    VALUES (7, 'nom', 'sujet', TO_DATE('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));
    Vous faites une opération en trop ici.
    Rien de grave mais c'est pour que vous compreniez mieux.

    Soit vous dites à Oracle que les dates de votre session sont au format 'YYYY-MM-DD HH24:MI:SS', et dans ce cas, vous pouvez directement utiliser le littéral pour insérer une donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
    VALUES (7, 'nom', 'sujet', '1996-11-18 20:52:23');
    Soit vous ne dites rien à Oracle, vous lui passer la chaîne que vous voulez en lui précisant le format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
    VALUES (7, 'nom', 'sujet', 'Bases de données',
    TO_DATE('1996-11-18 20:52:23','YYYY-MM-DD HH24:MI:SS'));
    Ou encore avec un format plus délirant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO T_FORUM_FRM (FRM_ID, FRM_NOM, FRM_SUJET, FRM_DATE_CREATION) 
    VALUES (7, 'nom', 'sujet',
    TO_DATE('18/1996.11@23:20y52', 'DD/YYYY.MM"@"SS:HH24"y"MI'));

  12. #12
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Tu essayes dans NLS_DATE_FORMAT de preciser aussi le format de l'heure... je pense pas que ce soit ainsi qu'il faut proceder. Je crois qu'ici tu dois juste modifier la date.
    Non avec NLS_DATE_FORMAT tu peux modifier les 2, tout du moins avec SQL*Plus. Mon champ était bien formé d'une date et d'une heure.

    Je tourne une nouvelle fois en rond avec mon trigger.
    J'ai réussi à passer l'étape de la compilation qui ne me génère plus d'erreur mais malheureusement ne change pas grand chose a mon format de champ après reconnection de l'utilisateur.Voici ce que j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create or replace trigger TG_DB_AFTER_LOGON after logon on database
    Declare
      LC$OrdreSql Varchar(150);
    begin
    LC$OrdreSql := 'ALTER session SET nls_date_format="YYYY"-"MM"-"DD" "HH24":"MI":"SS"';
    if user = 'miltone' then
    execute immediate LC$OrdreSql;
    end if;
    end;
    Là je ne vois même plus où cherché car pour ORACLE tout va bien.

  13. #13
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous n'avez pas bien interprété "doubler les guillemets", vous auriez du faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'ALTER session SET nls_date_format=''YYYY-MM-DD HH24:MI:SS'';

  14. #14
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Non cette syntaxe ne marche pas. j'essaye de tourné encore et encore le code mais la seul solution qui aille n'a aucunes incidence sur mon champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE OR REPLACE
    TRIGGER TG_DB_AFTER_LOGON after logon ON DATABASE
    begin
    IF user = 'miltone' then
    execute immediate 'ALTER session SET nls_date_format=''YYYY-MM-DD HH24:MI:SS'';
    end if;
    end;

  15. #15
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    J'en ai oublié une à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'ALTER session SET nls_date_format=''YYYY-MM-DD HH24:MI:SS''';

  16. #16
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    2 syntaxes de trigger qui passe à la compilation mais je n'est aucun changement de visualisation dans mon champ date...

    pourtant ma commande en sqlplus parviens bien à me donner le résultat attendu.

    J'ai reboot ma BDD et j'ai aussi essayé en redemarrant completement mon PC.
    toujours rien.

  17. #17
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Juste pour être sûr... As tu modifié le type du champ FRM_DATE_CREATION, c'est DATE ou TIMESTAMP? Fait un Ce serait peut être bon d'avoir les paramètres de ta session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM NLS_SESSION_PARAMETERS;
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  18. #18
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Juste pour être sûr... As tu modifié le type du champ FRM_DATE_CREATION, c'est DATE ou TIMESTAMP?
    Oui je les modifié en format DATE.

    Quand je regarde les paramètres de ma session(avec mon compte sys) je remarque que le NLS_DATE_FORMAT n'a pas changé avec mon trigger et reste de la forme : YYYY-MM-DD

    par contre quand je fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    et que je reviens sur NLS_DATE_FORMAT je remarque que cette fois le paramètre à bien changé en : YYYY-MM-DD HH24:MI:SS et mon champ DATE s'affiche correctement quand j'effectue la même commande sur mon compte miltone cette fois.

  19. #19
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par miltone Voir le message
    Quand je regarde les paramètres de ma session(avec mon compte sys) je remarque que le NLS_DATE_FORMAT n'a pas changé avec mon trigger et reste de la forme : YYYY-MM-DD
    Ton trigger ne change le NLS_DATE_FORMAT que si c'est l'user 'miltone' qui se connecte à la bd.

    Citation Envoyé par miltone Voir le message
    par contre quand je fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER session SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
    et que je reviens sur NLS_DATE_FORMAT je remarque que cette fois le paramètre à bien changé en : YYYY-MM-DD HH24:MI:SS et mon champ DATE s'affiche correctement quand j'effectue la même commande sur mon compte miltone cette fois.
    Tu fais alter session sous quel utilisateur?
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  20. #20
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Ton trigger ne change le NLS_DATE_FORMAT que si c'est l'user 'miltone' qui se connecte à la bd.
    Oui oui biensur. j'ai testé moulte fois en me connectant sous miltone...

    Tu fais alter session sous quel utilisateur?
    dans un trigger : avec le user SYS (le script passe mais rien ne change)
    dans un SQL*Plus : avec le user miltone. (fonctionne mais temporaire)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Format date / heure dans un champ calculé
    Par Zebulon777 dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2013, 08h06
  2. Recuperer la date sans l'heur dans un champ datetime
    Par bob33 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/06/2010, 12h59
  3. Date/heure dans INSERT INTO
    Par Skangell dans le forum IHM
    Réponses: 10
    Dernier message: 25/06/2008, 13h41
  4. Insérer une heure dans un champs date
    Par erox44 dans le forum SQL
    Réponses: 7
    Dernier message: 22/04/2008, 12h25
  5. Réponses: 3
    Dernier message: 12/02/2008, 09h20

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