[HP-UX] Conversion date sql/bourn shell

Résolu
Bonjour, je suis débutant sous Unix et j'ai un problème au niveau de l'affichage d'une date.

Je travaille avec Oracle et j'ai une colonne d'une table qui contient un ensemble de dates.
Je récupère avec sqlplus sous Unix la totalité des dates et j'aimerais entrer dans un shell, avec une boucle for l'ensemble des dates en paramètre.

Voila ce que je fais :

#!/bin/sh
#set -x
F=$(sqlplus -s ${ORA_USER}/${ORA_PWD}@${BASE} << EOF
WHENEVER OSERROR EXIT 61 ROLLBACK
WHENEVER SQLERROR EXIT 62 ROLLBACK
set newpage 0 space 0 linesize 150 pagesize 0 echo off feedback off heading off termout off 
SELECT matable.JOUR FROM matable;
EOF)
echo $F
exit 0


Sous oracle, le champ JOUR est un champ DATE "30/11/2008"
et sous Oracle ca affiche "2008-11-30 00:00:00"

Comment modifier cela pour avoir sous unix le meme affichage de date qu'en sql ?
Merci de votre aide.
Configuration: Windows XP
Firefox 2.0.0.18

6 réponses

  1. Contributeur
    hello
    date '+%d/%m/%Y'
    date '+%Y-%m-%d %T'
    0
    1. Merci d'avoir répondu.

      Ce que tu me propose là, n'afficherait il pas seulement la date du jour dans le format désiré ?

      Car je récupère avec ma requête SQL des dates diverses.
      0
      1. Contributeur
        je n'ai pas totalement saisi la question. transformer des dates SQL ou une date courante en format SQL ?
        0
        1. Dans ma table j'ai des dates, (la colonne s'appelle JOUR et est au format DATE)
          type de date affichée :
          30/11/2008
          01/12/2008
          etc...

          Sous UNIX, j'effectue la requêtes SELECT JOUR FROM matable avec sqlplus,
          et au lieu de m'afficher la date 30/11/2008
          il me la transforme en : 2008-11-30 00:00:00

          De plus, je ne dois pas transformer UNE date mais une liste au nombre variable de date.

          Tu vois mieux ce que je veux dire?
          0
      2. Contributeur
        donc c'est l'affichage de sqlplus qui transforme la date, pas le shell HP-UX ?
        0
        1. Peut etre en effet ...
          T'as une idée pour résoudre le problème ?
          0
      3. Contributeur
        essayer
        set NLS_DATE_FORMAT = 'dd/mm/yyyy'
        0
        1. J'ai le droit à un:

          SP2-0735: unknown SET option beginning "NLS_DATE_F..." 2008-12-01 00:00:00

          en faisant:

          H=$(sqlplus -s ${ORA_USER}/${ORA_PWD}@${BASE} << EOF
          	WHENEVER OSERROR EXIT 61 ROLLBACK
          	WHENEVER SQLERROR EXIT 62 ROLLBACK
          	set newpage 0 space 0 linesize 150 pagesize 0 echo off feedback off heading off termout off
          	set NLS_DATE_FORMAT = 'dd/mm/yyyy'
          	SELECT matable.JOUR FROM matable;
          	EXIT
          	EOF)
          	echo $H
          0
      4. Contributeur
        et comme ça
        alter session set nls_date_format='dd/mm/yyyy';
        0
        1. Bah ca m'a l'air pas mal tout ^^
          Merci beaucoup ca marche !
          0