|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Bonjour,
Je veux insérer des données dans un de mes fichiers en omettant de renseigner certains champs, notament une date. J'utilise en rpg une instruction sql directe (exec sql...end-exec). Je fais donc un insert classique en listant mais zones: Code :
Cette zone est définie comme suit dans mon DDS: Code :
Quelqu'un pourrait me dire comment faire pour ne pas toucher à cette zone? Merci d'avance |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Ajoute le mot clé ALWNULL sur la DDS de ta zone date ensuite repasse ton INSERT :
Code :
|
||
|
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
Je voudrais insérer une date initialier à '01.01.0001' mais j'ai une erreur : Citation:
En fait je voudrais éviter de recompiler mon DDS et tous mes programmes l'utilisant... |
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Il faudrait savoir si c'est null ou une date que tu veux insérer ?
En tout cas, c'est pas malin d'avoir mis DATFMT(*EUR) dans la définition de la zone et, si tu pouvais supprimer cette fonction de ton PF, ça n'en serait que mieux. Si je comprends bien, tu dois vouloir insérer la date 01.01.0001 en ayant fait appel à une session SQL par STRSQL. Est-ce que c'est çà ? |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
Mon insert est dans un prog, par exec sql/end-exec (mais j'ai la meme chose si je copie/colle dans strsql) Citation:
Je débute, donc, je reproduis ce qui existe... |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Cette histoire de date m'intrigue un peu quand même.
Regarde par DSPFD s'il n'y a pas un programme déclencheur (trigger) qui serait associé au fichier et qui mettrait la date du jour dans la date annulation lors d'un INSERT ? Quant à déclarer le format de la date dans le fichier, c'est inutile car les dates sont insérées dans les fichiers sous un format binaire géré par l'OS. Indiquer DATFMT(*EUR) n'est utile qu'à l'affichage pour avoir le format européen (sic) à l'écran, avec des points comme séparateurs. D'ailleurs, mets-toi sous STRSQL, fais F13 et change le format de date en *ISO ou *DMYpar ex. puis passe une SELECT sur le fichier. Tu verras que les zones définies en type date (L) apparaîssent maintenant au format ISO (2007-06-08) ou au format DMY (08/06/07) selon le format que tu as choisi pour affichage. Mêmes effets pour les clauses INSERT et UPDATE. Tu peux insérer une date au format ISO dans tes tables et la consulter à l'écran au format DMY. |
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
Une autre table fait la même chose. Je vais tester sur plusieurs autres pour voir... En attendant je réinitialise ma date juste après par un update, en attendant de mettre à jour ma table. Citation:
|
||
|
|
00
|
|
|
#8 | |
|
Membre à l'essai
![]() Inscription : juin 2002 Messages : 32 ![]() |
Je ne sais quelle version de db2 tu utilise
Moi pour insérer des null dans des champs type date, j'utilise le "cast" Citation:
|
|
|
|
00
|
|
|
#9 | |
|
Membre régulier
![]() Inscription : avril 2006 Messages : 118 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com