TimeStamp dans le SQL Loader - SQL/NoSQL - Programmation
Marsh Posté le 18-01-2007 à 01:13:00
Pour simplifier (enfin gspr) le problème, j'ai modifié le type de la table en DATE.
J'ai testé de tronquer le champ sur la première ligne pour effectuer des tests:
AD;Andorra;1998-06-01
LOAD DATA INFILE 'C:\LOAD\DATA\02-CountryRegion.csv'
INTO TABLE CountryRegion
FIELDS TERMINATED BY ';'
( CountryRegionCode position (1:2),
Name,
ModifiedDate "to_date(:ModifiedDate,'YYYY-MM-DD')"
)
J'obtiens la très agaçante erreur suivante :
Enregistrement 1 : Rejeté - Erreur sur table TEST, colonne MADATE.
ORA-01841: L'année (complète) doit être comprise entre -4713 et +9999 et être différente de 0
Comment faire SVP ??
Merci
Marsh Posté le 17-01-2007 à 23:39:55
Bonjour,
j'ai un problème d'insertion de TIMESTAMP dans une table Oracle de la forme :
CREATE TABLE CountryRegion
(
CountryRegionCode nvarchar2 (3) NOT NULL ,
Name nvarchar2 (50) NOT NULL ,
ModifiedDate timestamp DEFAULT ( (SYSDATE) ) NOT NULL ,
CONSTRAINT PK_CountryRegion_Country_ADV66 PRIMARY KEY (CountryRegionCode)
)
Voila mon fichier CSV:
AD;Andorra;1998-06-01 00:00:00.000
AE;United Arab Emirates;1998-06-01 00:00:00.000
.....
Et mon fichier de contrôle :
LOAD DATA INFILE 'C:\LOAD\DATA\02-CountryRegion.csv'
INTO TABLE CountryRegion
FIELDS TERMINATED BY ';'
( CountryRegionCode position (1:2),
Name,
ModifiedDate TIMESTAMP(6) "YYYY-MM-DD HH12:mi:ss.ff3"
)
J'obtiens l'erreur :
Enregistrement 1 : Rejeté - Erreur sur table COUNTRYREGION, colonne MODIFIEDDATE.
ORA-01841: L'année (complète) doit être comprise entre -4713 et +9999 et être différente de 0
Si j'ote l'option TIMESTAMP ...., j'obtiens l'erreur:
Enregistrement 1 : Rejeté - Erreur sur table COUNTRYREGION, colonne MODIFIEDDATE.
ORA-01858: Caractère non numérique trouvé à la place d'un caractère numérique
Que faire??
Si je tentes les INSERT un à un en castant "timestamp", ca passe nickel. Est-il possible de caster autrement dans le fichier de contrôle ??
Merci