기술 정보
home
채널 소개
home

BIND_VARIABLE_CAPTURE 기능 사용 방법

문서 유형
기술 정보
분야
관리/환경설정
키워드
BIND_VARIABLE_CAPTURE
바인드 변수
1 more property

개요

BIND_VARIABLE_CAPTURE 기능은 SQL 실행 시 사용된 바인드 변수 값을 저장하여 확인할 수 있도록 하는 기능입니다.

주요 파라미터

BIND_VARIABLE_CAPTURE_MAX_COUNT : 저장할 바인드 변수 최대 개수
BIND_VARIABLE_CAPTURE_INTERVAL : 바인드 변수 값을 캡처하는 주기(초)
BIND_VARIABLE_CAPTURE_MAX_VAR_COUNT : 한 쿼리에서 저장할 수 있는 최대 바인드 변수 개수
v$sql_bind_capture : 현재 사용자(userid 기준)가 실행한 SQL의 바인드 변수 값 조회 가능
v$sql_bind_capture_all : 모든 사용자의 바인드 변수 값 조회 가능(접근 권한: SYS)

방법

관련 뷰 구조 확인

바인드 변수 값은 전용 뷰에서 확인할 수 있으며, 두 가지 뷰의 구조는 다음과 같습니다.
v$sql_bind_capture
SQL> DESC v$sql_bind_capture; COLUMN_NAME TYPE ----------------- ------------------ SQL_ID NUMBER USER_ID NUMBER NAME VARCHAR(128) POSITION NUMBER TYPE NUMBER TYPE_NAME VARCHAR(128) PRECISION NUMBER SCALE NUMBER LENGTH NUMBER TIME_CAPTURED DATE VALUE VARCHAR(4000)
SQL
복사
v$sql_bind_capture_all
모든 사용자의 바인드 변수 값을 조회할 수 있습니다.
SQL> DESC v$sql_bind_capture_all; COLUMN_NAME TYPE ----------------- ------------------ SQL_ID NUMBER USER_ID NUMBER NAME VARCHAR(128) POSITION NUMBER TYPE NUMBER TYPE_NAME VARCHAR(128) PRECISION NUMBER SCALE NUMBER LENGTH NUMBER TIME_CAPTURED DATE VALUE VARCHAR(4000)
SQL
복사

기능 활성화

파라미터를 변경하여 BIND_VARIABLE_CAPTURE 기능을 활성화합니다.
SQL> ALTER SYSTEM SET BIND_VARIABLE_CAPTURE=Y; System altered; SQL> SHOW PARAM BIND; NAME TYPE VALUE ------------------------------------ -------- -------------------------------- BIND_VARIABLE_CAPTURE Y_N YES BIND_VARIABLE_CAPTURE_INTERVAL UINT32 600 BIND_VARIABLE_CAPTURE_MAX_COUNT UINT32 1000 BIND_VARIABLE_CAPTURE_MAX_VAR_COUNT UINT32 512
SQL
복사

기능 테스트

바인드 변수 선언 및 값 할당
SQL> VAR num NUMBER; SQL> EXEC :num := 123456789; PSM completed. SQL> VAR test VARCHAR2(20); SQL> EXEC :test := 'TmaxData/Tibero'; PSM completed.
SQL
복사
바인드 변수 직접 조회
SQL> SELECT :test FROM dual; TEST ------------------------- TmaxData/Tibero SQL> SELECT :num FROM dual; NUM ---------- 123456789
SQL
복사
뷰에서 바인드 변수 값 확인
SQL> SELECT name, value FROM v$sql_bind_capture; NAME VALUE -------------------- -------------------- test TmaxData/Tibero num 123456789 SQL> SELECT name, value FROM v$sql_bind_capture_all; NAME VALUE -------------------- -------------------- test TmaxData/Tibero num 123456789
SQL
복사