개요
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
복사