OVH Cloud OVH Cloud

Erreur sql avec la date

5 réponses
Avatar
lin kha
Bonjour et meilleurs voeux à tous !!!

A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante et
fait une redirection vers req.sql:

...
echo SELECT
'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
FROM resinfo,distinfo
WHERE (distinfo.resourcekey = resinfo.resourceid)
and (distinfo.start1 ^>= 01-15-2004); >> req.sql
...
Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
une erreur du type "ORA-00932: inconsistent datatypes"!
Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
aucunes ne marchent.

Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.

5 réponses

Avatar
Philippe T [MS]
Bonjour,

Et en mettant la date sous la forme '2004-01-15' ???

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"lin kha" wrote in message
news:
Bonjour et meilleurs voeux à tous !!!

A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante


et
fait une redirection vers req.sql:

...
echo SELECT
'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
FROM resinfo,distinfo
WHERE (distinfo.resourcekey = resinfo.resourceid)
and (distinfo.start1 ^>= 01-15-2004); >> req.sql
...
Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
une erreur du type "ORA-00932: inconsistent datatypes"!
Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
aucunes ne marchent.

Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.


Avatar
Oliv'
Salut,
Je comprends pas bien ce que tu essayes de faire à quoi sert le .bat ?
tu cherches à intergee des variables ?
avec quel programme utilises tu cela ?
Oliv'


"lin kha" a écrit dans le message de
news:
Bonjour et meilleurs voeux à tous !!!

A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante et
fait une redirection vers req.sql:

...
echo SELECT
'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
FROM resinfo,distinfo
WHERE (distinfo.resourcekey = resinfo.resourceid)
and (distinfo.start1 ^>= 01-15-2004); >> req.sql
...
Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
une erreur du type "ORA-00932: inconsistent datatypes"!
Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
aucunes ne marchent.

Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.
Avatar
lin kha
C'est vrai que ca parait bizarre de faire sa requete dans un .bat mais c'est
le seul moyen que j'ai trouvé sachant que dans ma requete je dois exploiter
une variable dont la valeur a été calculée au-dessus.

J'utilise simplement l'éditeur de texte bloc note.

"Oliv'" a écrit :

Salut,
Je comprends pas bien ce que tu essayes de faire à quoi sert le .bat ?
tu cherches à intergee des variables ?
avec quel programme utilises tu cela ?
Oliv'


"lin kha" a écrit dans le message de
news:
Bonjour et meilleurs voeux à tous !!!

A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante et
fait une redirection vers req.sql:

....
echo SELECT
'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
FROM resinfo,distinfo
WHERE (distinfo.resourcekey = resinfo.resourceid)
and (distinfo.start1 ^>= 01-15-2004); >> req.sql
....
Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
une erreur du type "ORA-00932: inconsistent datatypes"!
Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
aucunes ne marchent.

Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.





Avatar
Oliv'
Ok mais il doit manquer des explications car si tu as une variable elle doit
apparaitre comme %variable%
dans ton echo ?

C'est quoi ta variable là dedans ? et ton savant calcul ?

supposons :
::(Attention bien respecter AUCUN espacements avec la commande SE et tout
sur la même ligne pour l'echo)

set resinfo=toto
pause
::echo %toto%
echo SELECT
%resinfo%.v_parent_id,esinfo.resourcename,to_char(distinfo.start1) FROM
%resinfo%,distinfo WHERE (distinfo.resourcekey = %resinfo%.resourceid)
and (distinfo.start1 ^>= '01-15-2004') >>req.sql
pause

le resultat :
SELECT toto.v_parent_id,esinfo.resourcename,to_char(distinfo.start1) FROM
toto,distinfo WHERE (distinfo.resourcekey = resinfo.resourceid) and
(distinfo.start1 >= '01-15-2004')


Pourquoi le >> (= ajout au fichier ) et pas un > (=remplace le fichier ) ?

tiens moi au courant
Oliv'


"lin kha" a écrit dans le message de
news:
C'est vrai que ca parait bizarre de faire sa requete dans un .bat mais c'est
le seul moyen que j'ai trouvé sachant que dans ma requete je dois exploiter
une variable dont la valeur a été calculée au-dessus.

J'utilise simplement l'éditeur de texte bloc note.

"Oliv'" a écrit :

Salut,
Je comprends pas bien ce que tu essayes de faire à quoi sert le .bat ?
tu cherches à intergee des variables ?
avec quel programme utilises tu cela ?
Oliv'


"lin kha" a écrit dans le message de
news:
Bonjour et meilleurs voeux à tous !!!

A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante
et
fait une redirection vers req.sql:

....
echo SELECT
'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
FROM resinfo,distinfo
WHERE (distinfo.resourcekey = resinfo.resourceid)
and (distinfo.start1 ^>= 01-15-2004); >> req.sql
....
Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
une erreur du type "ORA-00932: inconsistent datatypes"!
Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
aucunes ne marchent.

Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.





Avatar
lin kha
Finalement j'ai trouvé une façon détournée de répondre à mon problème et qui
me permet d'avancer dans mon programme.
J'ai changé de requete car les besoins n'étaient plus les mêmes et du coup
je n'ai plus de problème...

C'est vrai que mon prgramme parait bizarre, mais bon, j'ai été obligé de
travailler à partir d'un existant.

Merci beaucoup

"Oliv'" a écrit :

Ok mais il doit manquer des explications car si tu as une variable elle doit
apparaitre comme %variable%
dans ton echo ?

C'est quoi ta variable là dedans ? et ton savant calcul ?

supposons :
::(Attention bien respecter AUCUN espacements avec la commande SE et tout
sur la même ligne pour l'echo)

set resinfo=toto
pause
::echo %toto%
echo SELECT
%resinfo%.v_parent_id,esinfo.resourcename,to_char(distinfo.start1) FROM
%resinfo%,distinfo WHERE (distinfo.resourcekey = %resinfo%.resourceid)
and (distinfo.start1 ^>= '01-15-2004') >>req.sql
pause

le resultat :
SELECT toto.v_parent_id,esinfo.resourcename,to_char(distinfo.start1) FROM
toto,distinfo WHERE (distinfo.resourcekey = resinfo.resourceid) and
(distinfo.start1 >= '01-15-2004')


Pourquoi le >> (= ajout au fichier ) et pas un > (=remplace le fichier ) ?

tiens moi au courant
Oliv'


"lin kha" a écrit dans le message de
news:
C'est vrai que ca parait bizarre de faire sa requete dans un .bat mais c'est
le seul moyen que j'ai trouvé sachant que dans ma requete je dois exploiter
une variable dont la valeur a été calculée au-dessus.

J'utilise simplement l'éditeur de texte bloc note.

"Oliv'" a écrit :

> Salut,
> Je comprends pas bien ce que tu essayes de faire à quoi sert le .bat ?
> tu cherches à intergee des variables ?
> avec quel programme utilises tu cela ?
> Oliv'
>
>
> "lin kha" a écrit dans le message de
> news:
> Bonjour et meilleurs voeux à tous !!!
>
> A part ça, j'ai un problème avec mon .bat qui exécute la requête suivante
> et
> fait une redirection vers req.sql:
>
> ....
> echo SELECT
> 'resinfo.v_parent_id;esinfo.resourcename;to_char(distinfo.start1);'
> FROM resinfo,distinfo
> WHERE (distinfo.resourcekey = resinfo.resourceid)
> and (distinfo.start1 ^>= 01-15-2004); >> req.sql
> ....
> Le requête n'est pas lue jusq'au bout, puisqu'au niveau du signe '>=' j'ai
> une erreur du type "ORA-00932: inconsistent datatypes"!
> Pourtant 'distinfo.start1' est bien un champ de type date. J'ai essayé
> différentes méthodes ( mettre la date entre ' ou " ou en anglais...) mais
> aucunes ne marchent.
>
> Si quelqu'un y comprend quelquechose, merci d'avance pour votre aide.
>
>
>