ODBC 동작

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 3분
  • ODBC 드라이버를 테스트한 후 이 드라이버를 사용하여 다양한 클라이언트 애플리케이션에서 인스턴스 데이터베이스를 쿼리할 수 있습니다.

    ODBC 집계 함수

    ODBC 드라이버는 데이터를 다운로드하고 집계 함수를 로컬로 적용하려고 시도합니다. ODBC 드라이버는 다음 집계 함수를 지원합니다.

    • 카운트
    • 합계
    • 최소
    • 최대
    • 평균

    Aggregate 웹 서비스 플러그인을 활성화하여 ODBC 드라이버를 통해 집계 쿼리의 성능을 개선합니다.

    ODBC 날짜 및 시간 값

    ODBC 드라이버가 설치된 인스턴스와 컴퓨터는 두 개의 서로 다른 표준 시간대를 사용할 수 있습니다. ODBC 드라이버에서 반환되는 날짜 및 시간 값은 ServiceNow 인스턴스 시간대가 아니라 드라이버를 사용하는 애플리케이션의 현지 시간대로 되어 있습니다.

    ODBC 드라이버를 호스트하는 머신과 인스턴스 모두에 대해 정확한 시간대로 쿼리해야 합니다. GlideRecord는 인스턴스 시간대를 기준으로 필터링을 수행하며, ODBC 클라이언트는 Windows 시간대를 기준으로 필터링됩니다.

    예를 들어, 인스턴스는 CST(중부 표준시)에 있고 ODBC 드라이버는 PST(태평양 표준시)에 있는 컴퓨터에 설치됩니다. 2014-05-20 10:00:00에 인스턴스에 인시던트가 생성되고, 두 시간대의 사용자에게 인시던트가 생성된 시간이 UI에 10:00:00으로 표시됩니다. 그러나 생성 날짜 및 시간별로 이 인시던트를 성공적으로 쿼리하려면 PST의 컴퓨터에 있는 사용자가 2014-05-20 10:00:00 대신 2014-05-20 08:00:00을 쿼리해야 합니다.

    기간 및 타이머 형식 필드는 ODBC 버전 1.0.10부터 UTC 표준 시간대를 사용하여 반환됩니다. 이 변경에 대한 자세한 내용은 KB0583982 참조하십시오.

    ODBC 표시 값

    ODBC 표시 값을 사용하고 작업하는 방법에 대한 몇 가지 예는 다음과 같습니다.

    • 선택참조 열의 값을 표시합니다.

      Choice, Reference, Duration 또는 Timer 형식의 열을 쿼리할 때 표시 값이 포함된 접두사 dv_가 있는 추가 열을 사용할 수 있습니다. 예를 들어, sys_user 테이블에 다른 요청을 하지 않고 인시던트 기록에서 참조 필드의 sys_user.name 표시 값을 반환하는 dv_caller_id 선택할 수 있습니다.

      그림 1. 표시 값 반환
      표시 값 반환
    • 필터 조건의 표시 값:

      필터 조건에서도 표시 값을 사용할 수 있습니다. ODBC 드라이버는 쿼리 조건을 최적화하고 서버에서 필터를 처리합니다(예: dv_caller_id 필드 이름을 사용하여 인시던트의 caller_id 필드에 대한 sys_user 표시 값 쿼리).

      그림 2. 필터 조건의 표시 값
      필터 조건의 표시 값
    • 집계 쿼리의 표시 값:

      집계 쿼리는 GROUP BY 또는 WHERE 절에 표시 값을 지정하는 경우(예: 인시던트의 caller_id 필드에 그룹화하고 필터를 지정하는 경우) 표시 값을 활용할 수도 있습니다. 쿼리는 서버로 전달하여 최적화됩니다.

      그림 3. 집계 쿼리의 표시 값
      집계 쿼리의 표시 값

    테이블 및 열 이름 쿼리

    쿼리 사용자에 대한 읽기 ACL을 기반으로 액세스 가능한 테이블 및 열 목록을 가져올 수 있습니다.

    • 다음 쿼리는 쿼리 사용자에게 읽기 권한이 있는 모든 테이블의 이름을 반환합니다.

      oa_tables에서 *를 선택하십시오.

    • 쿼리할 테이블의 이름을 알고 나면 사용자가 읽기 권한이 있는 모든 열의 이름을 쿼리할 수 있습니다. 쿼리 사용자에게 테이블과 열 모두에 대한 읽기 권한이 있어야 합니다.

      select * from oa_columns where table_name='table_name';

    주:
    oa_tables 및 oa_columns 테이블은 내부 ODBC 테이블입니다. 이러한 테이블은 ODBC 드라이버를 통해서만 액세스할 수 있습니다.

    복제본 읽기에 ODBC 호출 라우팅

    쿼리 라우팅은 기본 DB에서 수많은 DB CPU 주기를 수행하는 SELECT 쿼리에 대한 기본 데이터베이스의 로드를 제거하기 위해 수행됩니다. 자세한 내용은 ServiceNow 읽기 복제본 데이터베이스 소개 단원을 참조하십시오.

    ODBC 호출을 복제본 읽기로 라우팅하려면 다음으로 이동하십시오. 모두 > 보조 데이터베이스 > 보조 DB 범주 ODBCtrue로 설정합니다.