Bonjour,
J'ai un problème avec une fonction qui transforme une date au format AAAAMMJJ en un format DATE (sql)
En qq lignes :
--> Ok la date 0 devient NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 str = "SELECT CAST ( NULL AS DATE ) as test1, swviews.dectodate(0) AS test2 from sysibm.sysdummy1" Set ors = New ADODB.Recordset Call ors.open(str, moCnc, adOpenDynamic, adLockBatchOptimistic) ors("test1") -> Null ors("test2") -> Null
Par contre!
"Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 str = "SELECT CAST ( NULL AS DATE ) as test1, swviews.dectodate(0) AS test2 from missdta.rlx000F" Set ors = New ADODB.Recordset Call ors.open(str, moCnc, adOpenDynamic, adLockBatchOptimistic) ors("test1") -> plantage ors("test2") -> plantage
Avis au experts... hum.
Pour info, le code sql de la fonction DECTODATE:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE FUNCTION SWVIEWS.DECTODATE ( ARG DECIMAL(8, 0) ) RETURNS DATE LANGUAGE SQL SPECIFIC SWVIEWS.DECTODATE DETERMINISTIC BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN CAST ( NULL AS DATE ) ; IF ARG = 0 THEN RETURN CAST ( NULL AS DATE ) ; ELSE RETURN DATE ( SUBSTR ( DIGITS ( ARG ) , 1 , 4 ) || '-' || SUBSTR ( DIGITS ( ARG ) , 5 , 2 ) || '-' || SUBSTR ( DIGITS ( ARG ) , 7 , 2 ) ) ; END IF ; END ;
Partager