Comportement ODBC

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 3 minutes de lecture
  • Après avoir testé le pilote ODBC, vous pouvez l’utiliser pour interroger votre base de données d’instance à partir de diverses applications clientes.

    Fonctions d’agrégat ODBC

    Le pilote ODBC tente de télécharger des données et d’appliquer des fonctions d’agrégation localement. Le pilote ODBC prend en charge les fonctions d’agrégation suivantes.

    • NOMBRE
    • SOMME
    • MIN.
    • MAX
    • MOY

    Activez le module d’extension Aggregate Web Service pour améliorer les performances des requêtes d’agrégat via le pilote ODBC.

    Valeurs de date et d’heure ODBC

    L’instance et l’ordinateur sur lesquels le pilote ODBC est installé peuvent utiliser deux fuseaux horaires différents. Les valeurs de date et d’heure renvoyées par le pilote ODBC correspondent au fuseau horaire local de l’application utilisant le pilote, et non au fuseau horaire de l’instance ServiceNow.

    Assurez-vous d’interroger dans des fuseaux horaires précis pour l’instance et l’ordinateur qui héberge le pilote ODBC. GlideRecord effectue un filtrage en fonction du fuseau horaire de l’instance, et le client ODBC est filtré en fonction du fuseau horaire Windows.

    Par exemple, une instance est à l’heure normale du Centre (CST) et le pilote ODBC est installé sur un ordinateur qui est à l’heure normale du Pacifique (PST). Un incident est créé sur l’instance le 20/05/2014 10 :00 :00 et l’heure de création de l’incident est affichée dans l’interface utilisateur comme 10 :00 :00 pour les utilisateurs des deux fuseaux horaires. Toutefois, pour interroger avec succès cet incident par date et heure de création, un utilisateur sur l’ordinateur PST doit interroger 2014-05-20 08 :00 :00 au lieu de 2014-05-20 10 :00 :00.

    Les champs de durée et de type de minuteur sont renvoyés en utilisant le fuseau horaire UTC, à partir de la version ODBC 1.0.10. Consultez KB0583982 pour plus de détails sur ce changement.

    Valeurs d’affichage ODBC

    Vous trouverez ci-dessous quelques exemples d’utilisation et d’utilisation des valeurs d’affichage ODBC.

    • Affichez les valeurs dans les colonnes Choix et Référence :

      Lors de l’interrogation d’une colonne de type Choix, Référence, Durée ou Minuterie, une colonne supplémentaire contenant la valeur d’affichage avec le préfixe dv_ est disponible. Par exemple, vous pouvez sélectionner dv_caller_id pour renvoyer la valeur d’affichage sys_user.name du champ de référence à partir d’un enregistrement d’incident sans effectuer d’autre demande à la table sys_user.

      Figure 1. Renvoyer la valeur d’affichage
      Renvoyer la valeur d’affichage
    • Affichez les valeurs dans les conditions de filtre :

      Les valeurs d’affichage peuvent également être utilisées dans une condition de filtre. Le pilote ODBC optimise la condition de requête et traite le filtre sur le serveur, par exemple en interrogeant la valeur d’affichage de sys_user pour le champ caller_id d’un incident à l’aide du nom du champ dv_caller_id .

      Figure 2. Afficher les valeurs dans les conditions de filtre
      Afficher les valeurs dans les conditions de filtre
    • Afficher les valeurs dans les requêtes d’agrégat :

      Les requêtes d’agrégat peuvent également tirer parti des valeurs d’affichage si vous les spécifiez dans la clause group by ou where, par exemple, en effectuant un regroupement sur le champ caller_id d’un incident, ainsi qu’en spécifiant un filtre pour celui-ci. La requête est optimisée en la transmettant au serveur.

      Figure 3. Afficher les valeurs dans les requêtes d’agrégat
      Afficher les valeurs dans les requêtes d’agrégat

    Interrogation des noms de tables et de colonnes

    Vous pouvez obtenir une liste de tables et de colonnes accessibles en fonction des ACL en lecture pour l’utilisateur effectuant la requête.

    • La requête suivante renvoie les noms de toutes les tables pour lesquelles l’utilisateur interrogeant dispose d’un accès en lecture :

      Sélectionnez * dans oa_tables ;

    • Une fois que vous connaissez le nom de la table que vous souhaitez interroger, vous pouvez interroger les noms de toutes les colonnes pour lesquelles l’utilisateur dispose d’un accès en lecture. L’utilisateur effectuant l’interrogation doit disposer d’un accès en lecture pour la table et les colonnes.

      select * dans oa_columns où table_name='table_name' ;

    Remarque :
    Les tables oa_tables et oa_columns sont des tables ODBC internes. Ces tables ne sont accessibles que via le pilote ODBC.

    Routage des appels ODBC vers une réplication en lecture

    Le routage des requêtes est effectué pour alléger la charge de la base de données primaire pour les requêtes SELECT qui nécessitent de nombreux cycles de processeur de base de données sur la base de données principale. Pour plus d’informations, consultez Présentation des bases de données de réplication en lecture ServiceNow.

    Pour acheminer les appels ODBC vers une réplication en lecture, accédez à Tous > Base de données secondaires > Catégories DB secondaires et définissez ODBC sur true.