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

Outils Sybase Discussion :

[bcp in] Format de date pour les champs


Sujet :

Outils Sybase

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut [bcp in] Format de date pour les champs
    Bonjour à tous,

    je cherche à bcp_in un fichier txt dans lequel j'ai des champs de type date

    Dans mon fichier txt mon format date est de type 123 : yyyy-mm-dd THH:mm:sss

    Dans ma table d'import mon format date est de type Défault + milliseconds soit 109 et s'écrit donc : mon dd yyyy hh:mm:sss AM (or PM)

    Les solution communément proposées semble être de passer par une table temporaire pour récupérer mes champs sous sybase puis utiliser convert dans sybase pour modifier le format ou encore de modifier les options de sybase ou encore modifier les paramètres régionaux de l'OS, etc... etc...

    Or je souhaite écrire un .BAT qui ne passe pas par tout ce mic mac et utilise uniquement l'outil bcp !

    Y-a-til une solution (option) pour paramètrer bcp_in afin qu'il convertisse de lui même le format 123 de mon txt en 109 pour remplir les champs de ma table ?

    Merci pour toute information ou piste d'information

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut Suite ...
    Une idée m'est venue : utiliser un format de fichier !

    La manière la plus simple de le créer me semble être de lancer mon bcp_in sans option de format afin d'accéder au prompt.

    Je laisse alors les attributs par défaut des champs qui ne sont pas des dates.
    J'indique pour tout les champs date mon format.
    Si ça tourne je sauvegarde le tout lorsque bcp m'indique : "Do you want to create a file format ?"

    Dès lors (si tout roule) je peux lancer un .BAT qui se référe à ce file format.

    Toutefois j'ai un problème :

    Quand bcp me demande le type à associé aux champs correspondant au date (par défaut smalldatetime) j'aimerai pouvoir lui indiquer la syntaxe particulière de mon champ. J'ai essayé une tournure utilisée par LOAD TABLE à savoir DATETIME('yyyy-mm-dd HH:mm:sss') et beaucoup d'autres choses encore et ma fois rien ne fonctionne.

    Au vu de ce post et du précédent auriez-vous une idée... une piste...
    Peut-être devrais utiliser les codes de format date ODBC (dans mon cas 109 et 123) ? Je ne sais pas trop où chercher... MERCI.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut Post pour faire "remonter mon message"
    Personne n'a la moindre idée pour me sortir de là ?

    J'aimerai assez me passer de l'écriture d'un prog en C pour convertir dans le bon format les dates de mon txt.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par défaut
    Hmmm...

    Quelle version d'ASE?

    Je viens de tester avec 15.0.2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create table bcp_t(id int, dt datetime)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [mpeppler@pep ~]$ cat bcp.t
    1       2008-01-01 T08:05:20
    [mpeppler@pep ~]$ bcp my_db2..bcp_t in bcp.t -Usa -P -SLOCALHOST -c
     
    Starting copy...
     
    1 rows copied.
    Et dans la table, j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [33] 192.168.174.128 5010.my_db2.(sa).1> select * from bcp_t;
     id          dt
     ----------- -------------------
               1 Jan  1 2008  8:05AM
     
    (1 row affected)
    Donc bcp a correctement interprété la date ISO au moment de l'insert.

    Version de bcp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [mpeppler@pep ~]$ bcp -v
    Sybase CTBCP Utility/15.0/P-EBF14165 ESD #7/DRV.15.0.3/Linux Intel/Linux 2.4.21-47.0.1.ELsmp i686/BUILD1500-093/OPT/Wed Dec 13 21:49:08 2006
    Michael

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut A voir....
    Salut,

    tout d'abord merci pour le post.

    Comme tu es peut-être encore en visite sur le site je voulais te demander comment faire pour voir la version ASE.
    J'ai fait un bcp -v et les copiright sont pas tout jeune (87 et 98), je n'arrive pas pour le moment à en savoir plus sur la version bcp.

    Quoiqu'il en soit je vais regarder tout ça de plus près (en faisant du pas à pas avec un petit fichier de texte -- comme tu l'as fait). En réalité mes dates dans mon fichier texte sont sous la forme suivante :

    2007-05-15 17:27:00.0

    Je vais donc essayer de les mettre exactement au format que tu as utilisé avant d'aller plus loin. A savoir : 2008-01-01 T08:05:20

    A quoi sert le T (c'est pour Time ? ) (je croyais que ce n'était qu'une sorte de décoration inutile). Ensuite je verrai si je peux rajouter la gestion des millisecondes et me passer du T.

    Je pense que je posterai demain (Mardi) ou Mercredi pour donner du nouveau (en ce moment je suis sur quelque chose que je ne peux repousser) et ma fois ce post est fait pour que le prog soit plus générique (donc ça peux attendre encore 24 H).

    D'ici là n'hésite pas à me donner des infos sur le "T", son histoire et la norme ISO pour les dates.

    Voili voilou...
    Encore merci pour la réponse très claire.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut version bcp
    OK,
    pour ce qui est de la version de bcp c'est 11.1.1 pour moi. Je vais essayer de voir si on peut la mettre à jour.

    J'avais mal lu ton post décidément très très clair.

    Encore merci.
    Je débute est c'est pas tout les jours facile.

Discussions similaires

  1. Intégrer des calendriers pour les champs de saisie des dates
    Par xaviermfx dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 25/07/2012, 00h21
  2. Nouvelles Dates pour les Formation Nokia Windows Phone
    Par jamouroux dans le forum Windows Phone
    Réponses: 32
    Dernier message: 24/02/2012, 17h39
  3. utiliser le calendrier pour les champs date
    Par montassar.nizar dans le forum JDeveloper
    Réponses: 3
    Dernier message: 17/08/2008, 14h31
  4. Réponses: 3
    Dernier message: 12/12/2007, 15h35
  5. Equivalent de (*) pour les champs date et num
    Par pursang25 dans le forum Access
    Réponses: 3
    Dernier message: 11/07/2006, 21h39

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