Bonjour,
sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une
procédure d'import en Java insère des données dans la base de données. Des
enregistrements sont créés, avec, dans des champs de type float, une
information de type texte 1,#QNAN ou 1,#INF.
Ces enregistrements provoquent des erreurs lors des select, et si j'essaie
via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur
"Une exception de virgule flottante s'est produite dans le processus
utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non
numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ?
Comment corriger ma base ? Comment éviter le problème à l'avenir ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe T [MS]
Bonjour,
1.#INF paut apparaitre dans Analysis Services et normalement pas dans SQL Server ??? Pouvez-vous être plus précis sur ce que vous faites en Java pour produir cela ???
<<<
Query of a calculated member returns text such as "1.#INF or 1.#J" instead of the number.
Cause: The formula in the calculated member attempted to divide by zero.
Solution: Change your formulas to check for possible division by zero errors before they occur.
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Bruno M" <Bruno wrote in message news:
Bonjour, sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une procédure d'import en Java insère des données dans la base de données. Des enregistrements sont créés, avec, dans des champs de type float, une information de type texte 1,#QNAN ou 1,#INF. Ces enregistrements provoquent des erreurs lors des select, et si j'essaie via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur "Une exception de virgule flottante s'est produite dans le processus utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?)
?
Comment corriger ma base ? Comment éviter le problème à l'avenir ?
Merci pour toute aide ! Bruno
Bonjour,
1.#INF paut apparaitre dans Analysis Services et normalement pas dans SQL
Server ??? Pouvez-vous être plus précis sur ce que vous faites en Java pour
produir cela ???
<<<
Query of a calculated member returns text such as "1.#INF or 1.#J" instead
of the number.
Cause: The formula in the calculated member attempted to divide by zero.
Solution: Change your formulas to check for possible division by zero errors
before they occur.
Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france
"Bruno M" <Bruno M@discussions.microsoft.com> wrote in message
news:4AA95A52-84FC-4BCD-9E7B-75A49E446144@microsoft.com...
Bonjour,
sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une
procédure d'import en Java insère des données dans la base de données. Des
enregistrements sont créés, avec, dans des champs de type float, une
information de type texte 1,#QNAN ou 1,#INF.
Ces enregistrements provoquent des erreurs lors des select, et si j'essaie
via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur
"Une exception de virgule flottante s'est produite dans le processus
utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non
numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?)
?
Comment corriger ma base ? Comment éviter le problème à l'avenir ?
1.#INF paut apparaitre dans Analysis Services et normalement pas dans SQL Server ??? Pouvez-vous être plus précis sur ce que vous faites en Java pour produir cela ???
<<<
Query of a calculated member returns text such as "1.#INF or 1.#J" instead of the number.
Cause: The formula in the calculated member attempted to divide by zero.
Solution: Change your formulas to check for possible division by zero errors before they occur.
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Bruno M" <Bruno wrote in message news:
Bonjour, sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une procédure d'import en Java insère des données dans la base de données. Des enregistrements sont créés, avec, dans des champs de type float, une information de type texte 1,#QNAN ou 1,#INF. Ces enregistrements provoquent des erreurs lors des select, et si j'essaie via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur "Une exception de virgule flottante s'est produite dans le processus utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?)
?
Comment corriger ma base ? Comment éviter le problème à l'avenir ?
Merci pour toute aide ! Bruno
lionelp
Bonjour,
C'est que les données insérées sont out of range, cela ne peut être arriver que lors d'appels rpc (voir via profiler les é&vènements type rpc:starting/completed). Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes préparées par exemple (prepared statements) ou server side cursors.
Cordialmement, LionelP
"Bruno M" wrote:
Bonjour, sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une procédure d'import en Java insère des données dans la base de données. Des enregistrements sont créés, avec, dans des champs de type float, une information de type texte 1,#QNAN ou 1,#INF. Ces enregistrements provoquent des erreurs lors des select, et si j'essaie via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur "Une exception de virgule flottante s'est produite dans le processus utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? Comment corriger ma base ? Comment éviter le problème à l'avenir ?
Merci pour toute aide ! Bruno
Bonjour,
C'est que les données insérées sont out of range, cela ne peut être arriver
que lors d'appels rpc (voir via profiler les é&vènements type
rpc:starting/completed).
Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes
préparées par exemple (prepared statements) ou server side cursors.
Cordialmement,
LionelP
"Bruno M" wrote:
Bonjour,
sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une
procédure d'import en Java insère des données dans la base de données. Des
enregistrements sont créés, avec, dans des champs de type float, une
information de type texte 1,#QNAN ou 1,#INF.
Ces enregistrements provoquent des erreurs lors des select, et si j'essaie
via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur
"Une exception de virgule flottante s'est produite dans le processus
utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non
numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ?
Comment corriger ma base ? Comment éviter le problème à l'avenir ?
C'est que les données insérées sont out of range, cela ne peut être arriver que lors d'appels rpc (voir via profiler les é&vènements type rpc:starting/completed). Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes préparées par exemple (prepared statements) ou server side cursors.
Cordialmement, LionelP
"Bruno M" wrote:
Bonjour, sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une procédure d'import en Java insère des données dans la base de données. Des enregistrements sont créés, avec, dans des champs de type float, une information de type texte 1,#QNAN ou 1,#INF. Ces enregistrements provoquent des erreurs lors des select, et si j'essaie via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur "Une exception de virgule flottante s'est produite dans le processus utilisateur"
Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? Comment corriger ma base ? Comment éviter le problème à l'avenir ?
Merci pour toute aide ! Bruno
Bruno M
Bonjour, Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour résoudre le pb initial. Il est probable en effet que le driver JDBC fait un appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement Bruno
"" wrote:
Bonjour,
C'est que les données insérées sont out of range, cela ne peut être arriver que lors d'appels rpc (voir via profiler les é&vènements type rpc:starting/completed). Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes préparées par exemple (prepared statements) ou server side cursors.
Cordialmement, LionelP
"Bruno M" wrote:
> Bonjour, > sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une > procédure d'import en Java insère des données dans la base de données. Des > enregistrements sont créés, avec, dans des champs de type float, une > information de type texte 1,#QNAN ou 1,#INF. > Ces enregistrements provoquent des erreurs lors des select, et si j'essaie > via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur > "Une exception de virgule flottante s'est produite dans le processus > utilisateur" > > Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non > numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? > Comment corriger ma base ? Comment éviter le problème à l'avenir ? > > Merci pour toute aide ! > Bruno
Bonjour,
Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour
résoudre le pb initial. Il est probable en effet que le driver JDBC fait un
appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un
flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les
enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut
actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des
centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement
Bruno
"lionelp@online.microsoft.com" wrote:
Bonjour,
C'est que les données insérées sont out of range, cela ne peut être arriver
que lors d'appels rpc (voir via profiler les é&vènements type
rpc:starting/completed).
Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes
préparées par exemple (prepared statements) ou server side cursors.
Cordialmement,
LionelP
"Bruno M" wrote:
> Bonjour,
> sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une
> procédure d'import en Java insère des données dans la base de données. Des
> enregistrements sont créés, avec, dans des champs de type float, une
> information de type texte 1,#QNAN ou 1,#INF.
> Ces enregistrements provoquent des erreurs lors des select, et si j'essaie
> via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur
> "Une exception de virgule flottante s'est produite dans le processus
> utilisateur"
>
> Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non
> numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ?
> Comment corriger ma base ? Comment éviter le problème à l'avenir ?
>
> Merci pour toute aide !
> Bruno
Bonjour, Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour résoudre le pb initial. Il est probable en effet que le driver JDBC fait un appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement Bruno
"" wrote:
Bonjour,
C'est que les données insérées sont out of range, cela ne peut être arriver que lors d'appels rpc (voir via profiler les é&vènements type rpc:starting/completed). Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes préparées par exemple (prepared statements) ou server side cursors.
Cordialmement, LionelP
"Bruno M" wrote:
> Bonjour, > sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une > procédure d'import en Java insère des données dans la base de données. Des > enregistrements sont créés, avec, dans des champs de type float, une > information de type texte 1,#QNAN ou 1,#INF. > Ces enregistrements provoquent des erreurs lors des select, et si j'essaie > via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur > "Une exception de virgule flottante s'est produite dans le processus > utilisateur" > > Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non > numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? > Comment corriger ma base ? Comment éviter le problème à l'avenir ? > > Merci pour toute aide ! > Bruno
lionelp
Bonjour,
peut-être en faisant: SET ARITHIGNORE ON (ou SET ARITHABORTH OFF) go select * into new_float_table go select * from float_table where key not in (select key from new_float_table)
De cette manière on doit pouvoir filtrer les données incorrectes puis les identifier.
Cordialement, LionelP
"Bruno M" wrote:
Bonjour, Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour résoudre le pb initial. Il est probable en effet que le driver JDBC fait un appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement Bruno
"" wrote:
> Bonjour, > > C'est que les données insérées sont out of range, cela ne peut être arriver > que lors d'appels rpc (voir via profiler les é&vènements type > rpc:starting/completed). > Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes > préparées par exemple (prepared statements) ou server side cursors. > > Cordialmement, > LionelP > > "Bruno M" wrote: > > > Bonjour, > > sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une > > procédure d'import en Java insère des données dans la base de données. Des > > enregistrements sont créés, avec, dans des champs de type float, une > > information de type texte 1,#QNAN ou 1,#INF. > > Ces enregistrements provoquent des erreurs lors des select, et si j'essaie > > via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur > > "Une exception de virgule flottante s'est produite dans le processus > > utilisateur" > > > > Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non > > numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? > > Comment corriger ma base ? Comment éviter le problème à l'avenir ? > > > > Merci pour toute aide ! > > Bruno
Bonjour,
peut-être en faisant:
SET ARITHIGNORE ON (ou SET ARITHABORTH OFF)
go
select * into new_float_table
go
select * from float_table
where key not in (select key from new_float_table)
De cette manière on doit pouvoir filtrer les données incorrectes puis les
identifier.
Cordialement,
LionelP
"Bruno M" wrote:
Bonjour,
Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour
résoudre le pb initial. Il est probable en effet que le driver JDBC fait un
appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un
flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les
enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut
actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des
centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement
Bruno
"lionelp@online.microsoft.com" wrote:
> Bonjour,
>
> C'est que les données insérées sont out of range, cela ne peut être arriver
> que lors d'appels rpc (voir via profiler les é&vènements type
> rpc:starting/completed).
> Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes
> préparées par exemple (prepared statements) ou server side cursors.
>
> Cordialmement,
> LionelP
>
> "Bruno M" wrote:
>
> > Bonjour,
> > sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une
> > procédure d'import en Java insère des données dans la base de données. Des
> > enregistrements sont créés, avec, dans des champs de type float, une
> > information de type texte 1,#QNAN ou 1,#INF.
> > Ces enregistrements provoquent des erreurs lors des select, et si j'essaie
> > via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur
> > "Une exception de virgule flottante s'est produite dans le processus
> > utilisateur"
> >
> > Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non
> > numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ?
> > Comment corriger ma base ? Comment éviter le problème à l'avenir ?
> >
> > Merci pour toute aide !
> > Bruno
peut-être en faisant: SET ARITHIGNORE ON (ou SET ARITHABORTH OFF) go select * into new_float_table go select * from float_table where key not in (select key from new_float_table)
De cette manière on doit pouvoir filtrer les données incorrectes puis les identifier.
Cordialement, LionelP
"Bruno M" wrote:
Bonjour, Merci beaucoup pour cette réponse, qui me donne une piste très sérieuse pour résoudre le pb initial. Il est probable en effet que le driver JDBC fait un appel en RPC au serveur, et qu'il me faut trouver dans quel cas j'ai un flottant out of range.
Autre question : ai-je un moyen simple de rechercher et corriger les enregistrements ainsi endommagés ? Un "select" termine en erreur, il me faut actuellement les chercher "à la main" via Enterprise Manager, ce qui sur des centaines de milliers d'enregistrements est quasiment infaisable.
Cordialement Bruno
"" wrote:
> Bonjour, > > C'est que les données insérées sont out of range, cela ne peut être arriver > que lors d'appels rpc (voir via profiler les é&vènements type > rpc:starting/completed). > Le driver choisit ce type d'éxécution lorsque l'on utilise des requêtes > préparées par exemple (prepared statements) ou server side cursors. > > Cordialmement, > LionelP > > "Bruno M" wrote: > > > Bonjour, > > sous SQL Server 2000 (SP 3 non appliqué) j'ai un problème sérieux : une > > procédure d'import en Java insère des données dans la base de données. Des > > enregistrements sont créés, avec, dans des champs de type float, une > > information de type texte 1,#QNAN ou 1,#INF. > > Ces enregistrements provoquent des erreurs lors des select, et si j'essaie > > via le Enterprise Manager de changer leur contenu, j'obtiens l'erreur > > "Une exception de virgule flottante s'est produite dans le processus > > utilisateur" > > > > Normalement SQL Server ne devrait pas permettre l'insertion de valeurs non > > numériques dans des champs float. Que s'est-il passé (bug de SQL Server ?) ? > > Comment corriger ma base ? Comment éviter le problème à l'avenir ? > > > > Merci pour toute aide ! > > Bruno