IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Express2014-Procédure qui tombe en erreur au fil du temps


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club Avatar de Azurphenix
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Express2014-Procédure qui tombe en erreur au fil du temps
    Bonjour,
    J'ai une procédure stockée qui calcule des statistiques sur des données historisées.
    En paramètre elle reçoit la plage horaire pour le calcul et les noms des mesures sur lesquelles le calcul doit être fait.
    Tout fonctionne correctement pendant un temps mais, sans message d'erreur spécifique dans les logs, cette procédure ne fonctionne plus.
    Quand elle est dans cet état, si je lance le contenu dans un query séparé : les résultats s'affichent sans erreur.
    Si j'appelle la procédure => erreur d'exécution et le message laisse supposer que les paramètres ne sont pas pris en compte correctement.
    J'ouvre la procédure en modification (par le menu de SQL management) puis j'exécute le ALTER sans faire de modification.
    La procédure repart correctement jusqu'au lendemain.
    Cela me laisse supposer que c'est la version compilée qui devient corrompue. Mais par quoi?
    Quelqu'un aurait-il une piste sur la raison de ce fonctionnement et les endroits où je pourrais investiguer?
    merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    À partir de quoi cette procédure est-elle lancée :
    • SSMS ?
    • Agent SQL ?
    • Application développée ? (si oui, avec quel langage / connecteur ?)



    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau Candidat au Club Avatar de Azurphenix
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    À partir de quoi cette procédure est-elle lancée :
    • SSMS ?
    • Agent SQL ?
    • Application développée ? (si oui, avec quel langage / connecteur ?)



    A +
    Par défaut la procédure est appelée depuis VB.net avec un System.Data.SqlClient.SQLCommand.
    mais quand elle tombe, je fait le test d'appel depuis une fenêtre de command query du style "EXEC maProc Param1, Param2, Param3"
    Et cela aussi ne passe pas et renvoi l'erreur sauf que l'exécution du code contenu passe bien.
    Seule la recompilation relance le bon fonctionnement

    Pour information l'erreur est "System.Data.SqlClient.SqlException: Cannot execute the query "SELECT Tbl1010.TagName Col1060,Tbl1010.Value Col1061 FROM Runtime.dbo.History Tbl1010 WHERE Tbl1010.wwRetrievalMode=N'FULL' AND Tbl1010.OPCQuality=(192) AND Tbl1010.DateTime>=? AND Tbl1010.DateTime<=?" against OLE DB provider "INSQL" for linked server "INSQL"."
    Or les ? sont sensés contenir les paramètres de date et les Tbl1010 ne correspondent pas aux noms des données : d'où ma déduction que la procédure n'accepte plus les paramètres que ce soit depuis le SQLCommand ou depuis un EXEC directement dans une fenêtre de query.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Le message d'erreur indique l'utilisation des objets serveurs liés.
    La requête incriminée référence-t-elle réellement des objets serveurs liés ? Si oui, comment, selon quelle méthode ?
    Enfin, peux-tu, en plus du message d'erreur, déjà incomplet, poster le texte intégral de la requête SQL ?

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tbl1010 c'est un alias, la table cible est Runtime.dbo.History.
    Est-ce que la bd Runtime existe bien sur ton instance distante ?
    Est-ce que le user du linked server a les droits de lire les données de cette table ?

  6. #6
    Nouveau Candidat au Club Avatar de Azurphenix
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Comme je l'ai indiqué ce n'est pas le contenu qui pose problème car son exécution dans une fenêtre de commande ne génère aucune erreur et retourne bien les données

    pour information, la déclaration est "PROCEDURE [dbo].[sp_Statistiques] (@tagname nvarchar(max), @startDate datetime2(7), @EndDate datetime2(7))"
    Je ne peux diffuser le contenu complet car il comporte des informations confidentielles.

    C'est bien la procédure qui tombe en rideau. l'ouvrir en "ALTER" et exécution du alter sans modification relance le bon fonctionnement.
    Actuellement j'ai 2 possibilités:
    * Mettre la procédure en mode "RECOMPILE" mais cela ne me plait pas trop
    * Ne pas utiliser de procédure mais lancer le query complet directement depuis le client ce qui revient plus ou moins au recompile

    Le problème que j'aimerais identifier, c'est l'origine de la corruption de SQL Server sur la procédure compilée mais je ne sais pas où chercher

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Quelle erreur obtenez vous quand vous la lancez depuis SSMS ?

Discussions similaires

  1. [PL/SQL]Procédure qui se compile avec des erreurs
    Par yoann7 dans le forum PL/SQL
    Réponses: 12
    Dernier message: 17/03/2009, 11h09
  2. Afficher la ligne de code qui est tombée en erreur
    Par CAML dans le forum Framework .NET
    Réponses: 8
    Dernier message: 21/04/2007, 19h42
  3. Requete SELECT qui cause une erreur SQL
    Par ahage4x4 dans le forum ASP
    Réponses: 23
    Dernier message: 10/06/2005, 14h46
  4. [PL/SQL]Procédure qui ne se finit pas...
    Par tscoops dans le forum Oracle
    Réponses: 8
    Dernier message: 13/12/2004, 15h53
  5. Kill procédure qui continue de tourner en bas. 9i
    Par nuke_y dans le forum Oracle
    Réponses: 10
    Dernier message: 15/11/2004, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo