Comportement ODBC

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 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égat localement. Le pilote ODBC prend en charge les fonctions d’agrégat 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 heure ODBC

    L’instance et la machine sur laquelle 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 se trouvent dans le fuseau horaire local de l’application à l’aide du pilote, et non dans le fuseau horaire de l’instance ServiceNow.

    Assurez-vous d’effectuer des requêtes dans des fuseaux horaires précis pour l’instance et la machine 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 en heure normale du Centre (CST) et le pilote ODBC est installé sur un ordinateur qui est en heure normale du Pacifique (PST). Un incident est créé sur l’instance au 2014-05-20 10:00:00, et l’heure de création de l’incident est affichée dans l’interface utilisateur comme étant 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 dans 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 à l’aide du fuseau horaire UTC, à partir de la version 1.0.10 d’ODBC. Reportez-vous à KB0583982 pour plus de détails sur ce changement.

    Valeurs d’affichage ODBC

    Vous trouverez ci-dessous quelques exemples d’utilisation et de travail 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 Minuteur, une colonne supplémentaire contenant la valeur d’affichage dv_ préfixe 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 une autre demande à la table sys_user.

      Figure 1. Renvoyer la valeur d’affichage
      Renvoyer la valeur d’affichage
    • Afficher 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
    • Affichez 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 grouper par ou où, par exemple, le regroupement sur le champ caller_id d’un incident et la spécification d’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 de lecture pour l’utilisateur qui effectue l’interrogation.

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

      sélectionner * 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 qui effectue l’interrogation doit avoir un accès en lecture pour la table et les colonnes.

      sélectionner * dans oa_columns où table_name='table_name' ;

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

    Acheminement des appels ODBC vers la réplication en lecture

    Le routage des requêtes est effectué pour soulager la base de données principale des requêtes SELECT qui prennent 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 la réplication en lecture, accédez à Tout > Base de données secondaires > Catégories DB secondaires et définissez odbc sur true.