[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
    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 !
  2. 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
  3. 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 ?
  4. 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?
  5. 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.