[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. 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.
    1. Contributeur
      je n'ai pas totalement saisi la question. transformer des dates SQL ou une date courante en format SQL ?
      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?
    2. Contributeur
      donc c'est l'affichage de sqlplus qui transforme la date, pas le shell HP-UX ?
      1. Peut etre en effet ...
        T'as une idée pour résoudre le problème ?
    3. Contributeur
      essayer
      set NLS_DATE_FORMAT = 'dd/mm/yyyy'
      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
    4. Contributeur
      et comme ça
      alter session set nls_date_format='dd/mm/yyyy';
      1. Bah ca m'a l'air pas mal tout ^^
        Merci beaucoup ca marche !