{Oracle} SQL Loader erreur date null
afura
-
afura -
afura -
Bonjour tous,
alors voilà j'essaie de charger un fichier dont l'une des colonnes est une date. Parfois la date n'est pas renseignée. Donc parfois à la place d'une valeur date j'ai NUL.
Mes fichiers ci dessous :
mon CTL:
LOAD DATA INFILE xxx.UNPACK APPEND INTO TABLE xxx TRAILING NULLCOLS (
xxx POSITION(1:9) INTEGER EXTERNAL,
DATE_APPRO POSITION(10:19) "DECODE(:DATE_APPRO,'','00', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
)
mon fichier de données(1ligne):
édité sous Notepad++
1234567892099-12-01
123789456NULNULNULNULNULNULNULNULNULNUL
Ma log:
ORA-01847: day of month must be between 1 and last day of month
je vous avoue que j'ai pas mal cherché mais je trouve pas comment m'en sortir...
alors voilà j'essaie de charger un fichier dont l'une des colonnes est une date. Parfois la date n'est pas renseignée. Donc parfois à la place d'une valeur date j'ai NUL.
Mes fichiers ci dessous :
mon CTL:
LOAD DATA INFILE xxx.UNPACK APPEND INTO TABLE xxx TRAILING NULLCOLS (
xxx POSITION(1:9) INTEGER EXTERNAL,
DATE_APPRO POSITION(10:19) "DECODE(:DATE_APPRO,'','00', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
)
mon fichier de données(1ligne):
édité sous Notepad++
1234567892099-12-01
123789456NULNULNULNULNULNULNULNULNULNUL
Ma log:
ORA-01847: day of month must be between 1 and last day of month
je vous avoue que j'ai pas mal cherché mais je trouve pas comment m'en sortir...
A voir également:
- Oracle date null
- Airpods 3 date de sortie - Guide
- Jm date avis - Forum Consommation & Internet
- Jm date désabonnement - Forum Gmail
- Publipostage date inversée - Forum Word
- Exif date changer - Télécharger - Albums photo
6 réponses
Salut,
d'abord je ne comprends pas le decode :
"DECODE(:DATE_APPRO,'','00', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
règle :
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
ou
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
donc si je prends ton decode
quand date_appro egal '' , alors '00'
et quand date_appro null alors to_date
ou alors dans le sql*loader la syntaxe est autre
Et ton fichier texte il contient NUL , soit 3 octets ou cela affiche NUL qui correspondrait à '00' hexa ??
d'abord je ne comprends pas le decode :
"DECODE(:DATE_APPRO,'','00', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
règle :
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
ou
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
donc si je prends ton decode
quand date_appro egal '' , alors '00'
et quand date_appro null alors to_date
ou alors dans le sql*loader la syntaxe est autre
Et ton fichier texte il contient NUL , soit 3 octets ou cela affiche NUL qui correspondrait à '00' hexa ??
Il faudrait que dans le décode tu donnes la valeur hexa des 10 positions, syntaxe sans garantie : X'00'
donc decode(...,X'00000000000000000000',null,to_date...
donc decode(...,X'00000000000000000000',null,to_date...
salut jeepee,
j'ai trouvé la solution il faut faire ça
"DECODE(HEXTORAW(:DATE_APPRO),'', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
je suis trop bon :)
j'ai trouvé la solution il faut faire ça
"DECODE(HEXTORAW(:DATE_APPRO),'', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
je suis trop bon :)
mais maintenant si j'ai vraiment une date alors HEXTORAW plante. comment tu fais pour détecter que tu as de l'hexa ou bien que c'est NUL soit x00 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
effectivement c'est une coquille la syntaxe est
"DECODE(:DATE_APPRO,'00', null, to_date(:DATE_APPRO,'YYYY-MM-DD'))"
et mon fichier de data contient des 0 en hexa à la place de ma date. Soit effectivement ce qui s'affiche en NUL dans Notepad++