Bonjour,

Je travaille actuellement dans un environnement Sybase 12.0/Unix. Un script importe quotidiennement des données via un bcp.
Je rencontre un pb avec des fichiers d'import qui contiennent des données complètement farfelues.

Précisement :
Colonne source : DATE_VL -> CHAR (10)
Colonne destination (en base) : DATE_VALO -> SMALLDATETIME

Exemple de données erronnées qui font planter les proc liées :
DATE_VL : "2007/17/07 5:35 PM"

Je devrais avoir à la place :
DATE_VALO : "17/07/2007 17:35"

La conversion renvoie une erreur et oblige la procédure à sortir en erreur.

Je recherche un moyen d'annuler la connversion si celle-ci revient en erreur.

Je pensais faire quelque chose du genre :
--------------------------------------------------------------------
DECLARE @DATE_VL CHAR (10)
DECLARE @DATE_VALO SMALLDATETIME
DECLARE @MESSAGE VARCHAR (128)

SELECT @DATE_VALO = (CONVERT (@DATE_VL,SMALLDATETIME))

SELECT @@ERROR

IF @@ERROR <> 0
BEGIN
SELECT@MESSAGE = "DONNEE INCORRECTE"
ROLLBACK TRAN
RETURN
END
ELSE
BEGIN
SELECT @MESSAGE =" DONNEE OK"
END


SELECT @MESSAGE
COMMIT TRAN
------------------------------------------------------------------------

Le pb est que l'erreur dans la conversion empêche la suite de l'exécution de la requête. De ce fait, la condition IF ne fonctionne que quand il n'y a pas d'erreur.

Pouvez-vous m'aider à trouver une parade ?
Par avance, je vous remercie.